monitor para medidores de consumo de energía...

72
C ARRERA DE E SPECIALIZACIÓN EN S ISTEMAS E MBEBIDOS MEMORIA DEL T RABAJO F INAL Monitor para medidores de consumo de energía eléctrica Autor: Ing. Mauricio Barroso Benavides Director: Mg. Ing. Gonzalo Sanchez (F.A.A.) Jurados: Mg. Ing. Martin Nicolas Menendez (FIUBA, CONICET-GICSAFe) Mg. Ing. Christian Yanez Flores (FIUBA) Esp. Ing. Esteban Daniel Volentini (UNT, FIUBA) Este trabajo fue realizado en la Ciudad de Salta, entre agosto de 2019 y agosto de 2020.

Upload: others

Post on 12-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

CARRERA DE ESPECIALIZACIOacuteN ENSISTEMAS EMBEBIDOS

MEMORIA DEL TRABAJO FINAL

Monitor para medidores de consumo deenergiacutea eleacutectrica

AutorIng Mauricio Barroso Benavides

DirectorMg Ing Gonzalo Sanchez (FAA)

JuradosMg Ing Martin Nicolas Menendez (FIUBA CONICET-GICSAFe)

Mg Ing Christian Yanez Flores (FIUBA)Esp Ing Esteban Daniel Volentini (UNT FIUBA)

Este trabajo fue realizado en la Ciudad de Saltaentre agosto de 2019 y agosto de 2020

III

Resumen

La presente memoria tiene como objetivo describir el desarrollo de undispositivo electroacutenico capaz de monitorear la informacioacuten de consumo de

energiacutea eleacutectrica proveniente de medidores de uso domiciliario El trabajo fuepropuesto por la cooperativa de servicios eleacutectricos de la ciudad boliviana deTupiza COPELECT para automatizar la lectura de los medidores que tiene

instalados en los hogares de sus maacutes de diez mil abonados

En la elaboracioacuten de este trabajo se ven plasmados los conocimientos adquiridosen la carrera de especializacioacuten sobre ingenieriacutea de software sistemas

operativos en tiempo real I y II protocolos de comunicacioacuten y disentildeo decircuitos impresos

V

Agradecimientos

A Gonzalo Sanchez director de este trabajo por sus valiosos consejos y aportes alo largo del desarrollo realizado

A Heacutector Tapia gerente teacutecnico de COOPELECT por su buena predisposicioacuten almomento de colaborar con el desarrollo de este trabajo

A los profesores de la Carrera de Especializacioacuten en Sistemas Embebidos porcontribuir en mi formacioacuten acadeacutemica con sus conocimientos y experiencias

VII

Iacutendice general

Resumen III

1 Introduccioacuten general 111 Medicioacuten del consumo eleacutectrico domiciliario 112 Medicioacuten inteligente 313 Soluciones disponibles en el mercado 414 Motivacioacuten 615 Objetivos y alcance 6

2 Introduccioacuten especiacutefica 721 Requerimientos 7

211 Requerimientos funcionales 7212 Requerimientos de documentacioacuten y produccioacuten 7

22 Esquema general del sistema 8221 Conversor oacuteptico-eleacutectrico 8222 Microcontrolador 9223 Transceptor Wi-Fi 10224 Transceptor LoRa 12225 Reloj en tiempo real 14226 Memoria no volaacutetil 14

23 Planificacioacuten 16

3 Disentildeo e implementacioacuten 1931 Prototipo de pruebas 19

311 Microcontrolador + Wi-Fi 20312 Transceptor LoRa 21313 RTC + EEPROM 22314 Conversor oacuteptico-eleacutectrico 22

32 Disentildeo de firmware 23321 DATA LOGGER 27322 DATA COMMUNICATION 30323 WEB SERVER 32

33 Interfaz web 3434 Prototipo comercial 36

4 Ensayos y resultados 4341 Pruebas unitarias 4342 Pruebas funcionales de firmware 4343 Pruebas de la interfaz web 4544 Pruebas de laboratorio 4845 Pruebas del transceptor LoRa 51

5 Conclusiones 53

VIII

51 Conclusiones generales 5352 Proacuteximos pasos 54

Bibliografiacutea 57

IX

Iacutendice de figuras

11 Medidor de consumo eleacutectrico analoacutegico1 212 Medidor de consumo eleacutectrico digital2 213 Smart meter de la firma emlite3 314 Registrador de pulsos PA-FL de la firma SyxthSense4 515 Registrador de pulsos AirTM-100S de la firma iNES5 5

21 Diagrama en bloques general del dispositivo 822 Fotoresistencia GL55286 923 Fototransistor IR333C7 924 Tarjeta de desarrollo del fabricante STMicroelectronics basada en

el microcontrolador STM32F030R8T68 1025 Ubicacioacuten de Wi-Fi en el modelo OSI9 1126 Arquitectura de una red Wi-Fi10 1127 Moacutedulo Wi-Fi basado en el circuito integrado EMW316211 1228 Stack LoraWAN12 1229 Arquitectura de una red LoraWAN13 13210 Moacutedulo LoRa basado en el circuito integrado RF9614 14211 Moacutedulo RTC basado en el circuito integrado DS130715 14212 Moacutedulo EEPROM basado en el circuito integrado 24C25616 15213 Moacutedulo flash basado en el circuito integrado W25Q16BVSIG17 15214 Diagrama AON del trabajo 16215 Primera parte del diagrama de Gantt 17216 Segunda parte del diagrama de Gantt 17217 Tercera parte del diagrama de Gantt 18

31 Diagrama en bloques del prototipo de pruebas 1932 Tarjeta de desarrollo NodeMCU de la firma Amica18 2033 Moacutedulo LoRa PM128019 2134 Moacutedulo RTC + EEPROM20 2235 Moacutedulo detector de luz21 2336 Diagrama de capas del firmware 2437 Diagrama de capas para DATA LOGGER 2738 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

LOGGER 2739 Diagrama de flujo de la tarea pulses_task 28310 Diagrama de flujo de la tarea alarm_task 28311 Diagrama de flujo de la funcioacuten data_logger_init 29312 Diagrama de capas para DATA COMMUNICATION 30313 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

COMMUNICATION 31314 Diagrama de flujo de la tarea lora_task 31315 Formato de los paquetes enviados y recibidos por DATA COMMU-

NICATION 32

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 2: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

III

Resumen

La presente memoria tiene como objetivo describir el desarrollo de undispositivo electroacutenico capaz de monitorear la informacioacuten de consumo de

energiacutea eleacutectrica proveniente de medidores de uso domiciliario El trabajo fuepropuesto por la cooperativa de servicios eleacutectricos de la ciudad boliviana deTupiza COPELECT para automatizar la lectura de los medidores que tiene

instalados en los hogares de sus maacutes de diez mil abonados

En la elaboracioacuten de este trabajo se ven plasmados los conocimientos adquiridosen la carrera de especializacioacuten sobre ingenieriacutea de software sistemas

operativos en tiempo real I y II protocolos de comunicacioacuten y disentildeo decircuitos impresos

V

Agradecimientos

A Gonzalo Sanchez director de este trabajo por sus valiosos consejos y aportes alo largo del desarrollo realizado

A Heacutector Tapia gerente teacutecnico de COOPELECT por su buena predisposicioacuten almomento de colaborar con el desarrollo de este trabajo

A los profesores de la Carrera de Especializacioacuten en Sistemas Embebidos porcontribuir en mi formacioacuten acadeacutemica con sus conocimientos y experiencias

VII

Iacutendice general

Resumen III

1 Introduccioacuten general 111 Medicioacuten del consumo eleacutectrico domiciliario 112 Medicioacuten inteligente 313 Soluciones disponibles en el mercado 414 Motivacioacuten 615 Objetivos y alcance 6

2 Introduccioacuten especiacutefica 721 Requerimientos 7

211 Requerimientos funcionales 7212 Requerimientos de documentacioacuten y produccioacuten 7

22 Esquema general del sistema 8221 Conversor oacuteptico-eleacutectrico 8222 Microcontrolador 9223 Transceptor Wi-Fi 10224 Transceptor LoRa 12225 Reloj en tiempo real 14226 Memoria no volaacutetil 14

23 Planificacioacuten 16

3 Disentildeo e implementacioacuten 1931 Prototipo de pruebas 19

311 Microcontrolador + Wi-Fi 20312 Transceptor LoRa 21313 RTC + EEPROM 22314 Conversor oacuteptico-eleacutectrico 22

32 Disentildeo de firmware 23321 DATA LOGGER 27322 DATA COMMUNICATION 30323 WEB SERVER 32

33 Interfaz web 3434 Prototipo comercial 36

4 Ensayos y resultados 4341 Pruebas unitarias 4342 Pruebas funcionales de firmware 4343 Pruebas de la interfaz web 4544 Pruebas de laboratorio 4845 Pruebas del transceptor LoRa 51

5 Conclusiones 53

VIII

51 Conclusiones generales 5352 Proacuteximos pasos 54

Bibliografiacutea 57

IX

Iacutendice de figuras

11 Medidor de consumo eleacutectrico analoacutegico1 212 Medidor de consumo eleacutectrico digital2 213 Smart meter de la firma emlite3 314 Registrador de pulsos PA-FL de la firma SyxthSense4 515 Registrador de pulsos AirTM-100S de la firma iNES5 5

21 Diagrama en bloques general del dispositivo 822 Fotoresistencia GL55286 923 Fototransistor IR333C7 924 Tarjeta de desarrollo del fabricante STMicroelectronics basada en

el microcontrolador STM32F030R8T68 1025 Ubicacioacuten de Wi-Fi en el modelo OSI9 1126 Arquitectura de una red Wi-Fi10 1127 Moacutedulo Wi-Fi basado en el circuito integrado EMW316211 1228 Stack LoraWAN12 1229 Arquitectura de una red LoraWAN13 13210 Moacutedulo LoRa basado en el circuito integrado RF9614 14211 Moacutedulo RTC basado en el circuito integrado DS130715 14212 Moacutedulo EEPROM basado en el circuito integrado 24C25616 15213 Moacutedulo flash basado en el circuito integrado W25Q16BVSIG17 15214 Diagrama AON del trabajo 16215 Primera parte del diagrama de Gantt 17216 Segunda parte del diagrama de Gantt 17217 Tercera parte del diagrama de Gantt 18

31 Diagrama en bloques del prototipo de pruebas 1932 Tarjeta de desarrollo NodeMCU de la firma Amica18 2033 Moacutedulo LoRa PM128019 2134 Moacutedulo RTC + EEPROM20 2235 Moacutedulo detector de luz21 2336 Diagrama de capas del firmware 2437 Diagrama de capas para DATA LOGGER 2738 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

LOGGER 2739 Diagrama de flujo de la tarea pulses_task 28310 Diagrama de flujo de la tarea alarm_task 28311 Diagrama de flujo de la funcioacuten data_logger_init 29312 Diagrama de capas para DATA COMMUNICATION 30313 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

COMMUNICATION 31314 Diagrama de flujo de la tarea lora_task 31315 Formato de los paquetes enviados y recibidos por DATA COMMU-

NICATION 32

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 3: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

V

Agradecimientos

A Gonzalo Sanchez director de este trabajo por sus valiosos consejos y aportes alo largo del desarrollo realizado

A Heacutector Tapia gerente teacutecnico de COOPELECT por su buena predisposicioacuten almomento de colaborar con el desarrollo de este trabajo

A los profesores de la Carrera de Especializacioacuten en Sistemas Embebidos porcontribuir en mi formacioacuten acadeacutemica con sus conocimientos y experiencias

VII

Iacutendice general

Resumen III

1 Introduccioacuten general 111 Medicioacuten del consumo eleacutectrico domiciliario 112 Medicioacuten inteligente 313 Soluciones disponibles en el mercado 414 Motivacioacuten 615 Objetivos y alcance 6

2 Introduccioacuten especiacutefica 721 Requerimientos 7

211 Requerimientos funcionales 7212 Requerimientos de documentacioacuten y produccioacuten 7

22 Esquema general del sistema 8221 Conversor oacuteptico-eleacutectrico 8222 Microcontrolador 9223 Transceptor Wi-Fi 10224 Transceptor LoRa 12225 Reloj en tiempo real 14226 Memoria no volaacutetil 14

23 Planificacioacuten 16

3 Disentildeo e implementacioacuten 1931 Prototipo de pruebas 19

311 Microcontrolador + Wi-Fi 20312 Transceptor LoRa 21313 RTC + EEPROM 22314 Conversor oacuteptico-eleacutectrico 22

32 Disentildeo de firmware 23321 DATA LOGGER 27322 DATA COMMUNICATION 30323 WEB SERVER 32

33 Interfaz web 3434 Prototipo comercial 36

4 Ensayos y resultados 4341 Pruebas unitarias 4342 Pruebas funcionales de firmware 4343 Pruebas de la interfaz web 4544 Pruebas de laboratorio 4845 Pruebas del transceptor LoRa 51

5 Conclusiones 53

VIII

51 Conclusiones generales 5352 Proacuteximos pasos 54

Bibliografiacutea 57

IX

Iacutendice de figuras

11 Medidor de consumo eleacutectrico analoacutegico1 212 Medidor de consumo eleacutectrico digital2 213 Smart meter de la firma emlite3 314 Registrador de pulsos PA-FL de la firma SyxthSense4 515 Registrador de pulsos AirTM-100S de la firma iNES5 5

21 Diagrama en bloques general del dispositivo 822 Fotoresistencia GL55286 923 Fototransistor IR333C7 924 Tarjeta de desarrollo del fabricante STMicroelectronics basada en

el microcontrolador STM32F030R8T68 1025 Ubicacioacuten de Wi-Fi en el modelo OSI9 1126 Arquitectura de una red Wi-Fi10 1127 Moacutedulo Wi-Fi basado en el circuito integrado EMW316211 1228 Stack LoraWAN12 1229 Arquitectura de una red LoraWAN13 13210 Moacutedulo LoRa basado en el circuito integrado RF9614 14211 Moacutedulo RTC basado en el circuito integrado DS130715 14212 Moacutedulo EEPROM basado en el circuito integrado 24C25616 15213 Moacutedulo flash basado en el circuito integrado W25Q16BVSIG17 15214 Diagrama AON del trabajo 16215 Primera parte del diagrama de Gantt 17216 Segunda parte del diagrama de Gantt 17217 Tercera parte del diagrama de Gantt 18

31 Diagrama en bloques del prototipo de pruebas 1932 Tarjeta de desarrollo NodeMCU de la firma Amica18 2033 Moacutedulo LoRa PM128019 2134 Moacutedulo RTC + EEPROM20 2235 Moacutedulo detector de luz21 2336 Diagrama de capas del firmware 2437 Diagrama de capas para DATA LOGGER 2738 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

LOGGER 2739 Diagrama de flujo de la tarea pulses_task 28310 Diagrama de flujo de la tarea alarm_task 28311 Diagrama de flujo de la funcioacuten data_logger_init 29312 Diagrama de capas para DATA COMMUNICATION 30313 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

COMMUNICATION 31314 Diagrama de flujo de la tarea lora_task 31315 Formato de los paquetes enviados y recibidos por DATA COMMU-

NICATION 32

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 4: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

VII

Iacutendice general

Resumen III

1 Introduccioacuten general 111 Medicioacuten del consumo eleacutectrico domiciliario 112 Medicioacuten inteligente 313 Soluciones disponibles en el mercado 414 Motivacioacuten 615 Objetivos y alcance 6

2 Introduccioacuten especiacutefica 721 Requerimientos 7

211 Requerimientos funcionales 7212 Requerimientos de documentacioacuten y produccioacuten 7

22 Esquema general del sistema 8221 Conversor oacuteptico-eleacutectrico 8222 Microcontrolador 9223 Transceptor Wi-Fi 10224 Transceptor LoRa 12225 Reloj en tiempo real 14226 Memoria no volaacutetil 14

23 Planificacioacuten 16

3 Disentildeo e implementacioacuten 1931 Prototipo de pruebas 19

311 Microcontrolador + Wi-Fi 20312 Transceptor LoRa 21313 RTC + EEPROM 22314 Conversor oacuteptico-eleacutectrico 22

32 Disentildeo de firmware 23321 DATA LOGGER 27322 DATA COMMUNICATION 30323 WEB SERVER 32

33 Interfaz web 3434 Prototipo comercial 36

4 Ensayos y resultados 4341 Pruebas unitarias 4342 Pruebas funcionales de firmware 4343 Pruebas de la interfaz web 4544 Pruebas de laboratorio 4845 Pruebas del transceptor LoRa 51

5 Conclusiones 53

VIII

51 Conclusiones generales 5352 Proacuteximos pasos 54

Bibliografiacutea 57

IX

Iacutendice de figuras

11 Medidor de consumo eleacutectrico analoacutegico1 212 Medidor de consumo eleacutectrico digital2 213 Smart meter de la firma emlite3 314 Registrador de pulsos PA-FL de la firma SyxthSense4 515 Registrador de pulsos AirTM-100S de la firma iNES5 5

21 Diagrama en bloques general del dispositivo 822 Fotoresistencia GL55286 923 Fototransistor IR333C7 924 Tarjeta de desarrollo del fabricante STMicroelectronics basada en

el microcontrolador STM32F030R8T68 1025 Ubicacioacuten de Wi-Fi en el modelo OSI9 1126 Arquitectura de una red Wi-Fi10 1127 Moacutedulo Wi-Fi basado en el circuito integrado EMW316211 1228 Stack LoraWAN12 1229 Arquitectura de una red LoraWAN13 13210 Moacutedulo LoRa basado en el circuito integrado RF9614 14211 Moacutedulo RTC basado en el circuito integrado DS130715 14212 Moacutedulo EEPROM basado en el circuito integrado 24C25616 15213 Moacutedulo flash basado en el circuito integrado W25Q16BVSIG17 15214 Diagrama AON del trabajo 16215 Primera parte del diagrama de Gantt 17216 Segunda parte del diagrama de Gantt 17217 Tercera parte del diagrama de Gantt 18

31 Diagrama en bloques del prototipo de pruebas 1932 Tarjeta de desarrollo NodeMCU de la firma Amica18 2033 Moacutedulo LoRa PM128019 2134 Moacutedulo RTC + EEPROM20 2235 Moacutedulo detector de luz21 2336 Diagrama de capas del firmware 2437 Diagrama de capas para DATA LOGGER 2738 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

LOGGER 2739 Diagrama de flujo de la tarea pulses_task 28310 Diagrama de flujo de la tarea alarm_task 28311 Diagrama de flujo de la funcioacuten data_logger_init 29312 Diagrama de capas para DATA COMMUNICATION 30313 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

COMMUNICATION 31314 Diagrama de flujo de la tarea lora_task 31315 Formato de los paquetes enviados y recibidos por DATA COMMU-

NICATION 32

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 5: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

VIII

51 Conclusiones generales 5352 Proacuteximos pasos 54

Bibliografiacutea 57

IX

Iacutendice de figuras

11 Medidor de consumo eleacutectrico analoacutegico1 212 Medidor de consumo eleacutectrico digital2 213 Smart meter de la firma emlite3 314 Registrador de pulsos PA-FL de la firma SyxthSense4 515 Registrador de pulsos AirTM-100S de la firma iNES5 5

21 Diagrama en bloques general del dispositivo 822 Fotoresistencia GL55286 923 Fototransistor IR333C7 924 Tarjeta de desarrollo del fabricante STMicroelectronics basada en

el microcontrolador STM32F030R8T68 1025 Ubicacioacuten de Wi-Fi en el modelo OSI9 1126 Arquitectura de una red Wi-Fi10 1127 Moacutedulo Wi-Fi basado en el circuito integrado EMW316211 1228 Stack LoraWAN12 1229 Arquitectura de una red LoraWAN13 13210 Moacutedulo LoRa basado en el circuito integrado RF9614 14211 Moacutedulo RTC basado en el circuito integrado DS130715 14212 Moacutedulo EEPROM basado en el circuito integrado 24C25616 15213 Moacutedulo flash basado en el circuito integrado W25Q16BVSIG17 15214 Diagrama AON del trabajo 16215 Primera parte del diagrama de Gantt 17216 Segunda parte del diagrama de Gantt 17217 Tercera parte del diagrama de Gantt 18

31 Diagrama en bloques del prototipo de pruebas 1932 Tarjeta de desarrollo NodeMCU de la firma Amica18 2033 Moacutedulo LoRa PM128019 2134 Moacutedulo RTC + EEPROM20 2235 Moacutedulo detector de luz21 2336 Diagrama de capas del firmware 2437 Diagrama de capas para DATA LOGGER 2738 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

LOGGER 2739 Diagrama de flujo de la tarea pulses_task 28310 Diagrama de flujo de la tarea alarm_task 28311 Diagrama de flujo de la funcioacuten data_logger_init 29312 Diagrama de capas para DATA COMMUNICATION 30313 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

COMMUNICATION 31314 Diagrama de flujo de la tarea lora_task 31315 Formato de los paquetes enviados y recibidos por DATA COMMU-

NICATION 32

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 6: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

IX

Iacutendice de figuras

11 Medidor de consumo eleacutectrico analoacutegico1 212 Medidor de consumo eleacutectrico digital2 213 Smart meter de la firma emlite3 314 Registrador de pulsos PA-FL de la firma SyxthSense4 515 Registrador de pulsos AirTM-100S de la firma iNES5 5

21 Diagrama en bloques general del dispositivo 822 Fotoresistencia GL55286 923 Fototransistor IR333C7 924 Tarjeta de desarrollo del fabricante STMicroelectronics basada en

el microcontrolador STM32F030R8T68 1025 Ubicacioacuten de Wi-Fi en el modelo OSI9 1126 Arquitectura de una red Wi-Fi10 1127 Moacutedulo Wi-Fi basado en el circuito integrado EMW316211 1228 Stack LoraWAN12 1229 Arquitectura de una red LoraWAN13 13210 Moacutedulo LoRa basado en el circuito integrado RF9614 14211 Moacutedulo RTC basado en el circuito integrado DS130715 14212 Moacutedulo EEPROM basado en el circuito integrado 24C25616 15213 Moacutedulo flash basado en el circuito integrado W25Q16BVSIG17 15214 Diagrama AON del trabajo 16215 Primera parte del diagrama de Gantt 17216 Segunda parte del diagrama de Gantt 17217 Tercera parte del diagrama de Gantt 18

31 Diagrama en bloques del prototipo de pruebas 1932 Tarjeta de desarrollo NodeMCU de la firma Amica18 2033 Moacutedulo LoRa PM128019 2134 Moacutedulo RTC + EEPROM20 2235 Moacutedulo detector de luz21 2336 Diagrama de capas del firmware 2437 Diagrama de capas para DATA LOGGER 2738 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

LOGGER 2739 Diagrama de flujo de la tarea pulses_task 28310 Diagrama de flujo de la tarea alarm_task 28311 Diagrama de flujo de la funcioacuten data_logger_init 29312 Diagrama de capas para DATA COMMUNICATION 30313 Diagrama de conexioacuten con las herramientas de FreeRTOS de DATA

COMMUNICATION 31314 Diagrama de flujo de la tarea lora_task 31315 Formato de los paquetes enviados y recibidos por DATA COMMU-

NICATION 32

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 7: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

X

316 Diagrama de flujo de la funcioacuten data_communication_init 32317 Diagrama de capas para WEB SERVER 33318 WEB SERVER en modo punto de acceso 33319 WEB SERVER en modo estacioacuten 33320 Diagrama de flujo de la funcioacuten de inicializacioacuten del moacutedulo WEB

SERVER 34321 Pantalla principal de la interfaz web 35322 Pantalla de configuracioacuten de la interfaz web 36323 Carcasa VG-S43 de la firma Vange22 37324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link23 38325 Diagrama esquemaacutetico del prototipo comercial 39326 Capa top del PCB 40327 Capa bottom del PCB 40328 Modelo 3D del PCB montado del prototipo comercial 41329 PCB montado del prototipo comercial 41

41 Banco de pruebas para evaluar el funcionamiento del firmware 4442 Captura de pantalla de idf-monitor cuando el dispositivo inicia 4443 Captura de pantalla de idf-monitor cuando el dispositivo ejecuta

sus funciones normales 4544 Banco de pruebas para verificar el funcionamiento de la interfaz

web cuando el dispositivo estaacute en modo punto de acceso 4545 Captura de pantalla de las redes Wi-Fi disponibles en la laptop 4646 Captura de pantalla de la paacutegina principal de la interfaz web con

la utilidad de depuracioacuten funcionando 4647 Captura de pantalla del idf-monitor despueacutes de enviar los archivos

solicitados por el navegador web y el dispositivo en modo puntode acceso 47

48 Captura de pantalla de la paacutegina de configuracioacuten de la interfazweb con la utilidad de depuracioacuten funcionando 47

49 Captura de pantalla del idf-monitor despueacutes de configurar el dis-positivo en modo estacioacuten con los datos enviados por la interfazweb 48

410 Banco de pruebas para el conversor oacuteptico-eleacutectrico 48411 Salida de la pantalla del osciloscopio 49412 Banco de pruebas para el conversor oacuteptico-eleacutectrico 49413 Graacutefico de liacuteneas del comportamiento de la fuente de alimentacioacuten 50414 Captura de pantalla de idf-monitor despueacutes de enviar los archivos

para la interfaz web 51415 Captura de pantalla de la ubicacioacuten del gateway LoRa y el prototi-

po comercial 51

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 8: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

XI

Iacutendice de Tablas

21 IEEE 80211 10

31 Contenido SPIFFS 2632 Contenido kwhcsv 3033 Consumo de corriente del prototipo comercial 37

41 Pruebas unitarias 4342 Anaacutelisis de cobertura 4343 Prueba de la fuente de alimentacioacuten 176 VAC 4944 Prueba de la fuente de alimentacioacuten 220 VAC 5045 Prueba de la fuente de alimentacioacuten 264 VAC 5046 Paraacutemetros del transceptor LoRa 52

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 9: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

XIII

Este trabajo lo dedico a mi familia gracias eternas por suapoyo incondicional en cada etapa de mi vida Ustedes son

la luz que guiacutea mi camino

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 10: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

1

Capiacutetulo 1

Introduccioacuten general

En este capiacutetulo se presenta una descripcioacuten del proceso que COOPELECT realizapara obtener informacioacuten sobre el consumo eleacutectrico de sus abonados nocionessobre medidores inteligentes una comparacioacuten de las soluciones comercialmentedisponibles en esta temaacutetica las razones que motivaron al desarrollo del trabajojunto con sus objetivos y alcances

11 Medicioacuten del consumo eleacutectrico domiciliario

En los hogares se dispone de diversos dispositivos eleacutectricos y electroacutenicos queson utilizados para entretenimiento labores domeacutesticas trabajo etc La energiacuteaeleacutectrica consumida por estos dispositivos es medida en vatio-hora simbolizadoWh [1] El kWh equivalente a 1000 vatios-hora se utiliza para la facturacioacuten delconsumo de energiacutea eleacutectrica por parte de las compantildeiacuteas prestadoras del servicio[1] Para este fin las compantildeiacuteas instalan en los hogares de sus abonados dispositi-vos llamados medidores que se encargan de contar la cantidad de kWh consumi-dos Tambieacuten los medidores proporcionan una interfaz para que los funcionariosde dichas compantildeiacuteas puedan registrar la informacioacuten de consumo eleacutectrico

Las mayor parte de compantildeiacuteas prestadoras del servicio eleacutectrico utilizan princi-palmente dos tipos de medidores para medir el consumo eleacutectrico domiciliarioEstos son

1 Medidores analoacutegicos contienen un disco giratorio metaacutelico y un contadoranaloacutegico que indica el total de kWh consumidos Cuando la corriente fluyea traveacutes del medidor se genera un campo eleacutectrico que impulsa el disco agirar Entonces la velocidad angular del disco estaacute relacionada linealmentecon el consumo eleacutectrico Cada medidor analoacutegico tiene un valor que indicael nuacutemero de revoluciones que representan exactamente 1 kWh [2]

2 Medidores digitales tienen una interfaz que consiste en una pequentildea pan-talla digital para mostrar la cantidad total de kWh consumidos y una salidade pulso oacuteptico compuesta por un LED (Light-Emitting Diode) Cada cier-ta cantidad de transiciones entre el estado apagado y encendido del LEDrepresenta exactamente 1 kWh consumido esta cantidad es una constanteindicada por el medidor como impulsoskWh Por lo tanto monitorear elparpadeo del LED brinda la capacidad obtener el consumo eleacutectrico en eltiempo El valor de los impulsoskWh difiere seguacuten el fabricante del medi-dor y generalmente se encuentra debajo del LED [2]

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 11: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

2 Capiacutetulo 1 Introduccioacuten general

En las figuras 11 y 12 se pueden observar un medidor de consumo eleacutectricoanaloacutegico y otro digital respectivamente

FIGURA 11 Medidor de consumo eleacutectrico analoacutegico1

FIGURA 12 Medidor de consumo eleacutectrico digital2

Cuando la compantildeiacutea prestadora del servicio eleacutectrico quiere obtener la informa-cioacuten de consumo de sus medidores lo hace registrando el valor que exhibe lainterfaz del medidor que posee un contador analoacutegico en el caso de un medidoranaloacutegico o una pantalla digital en el caso de un medidor digital ambas exhibenel total de kWh consumidos por el abonado

La cooperativa de servicios eleacutectricos Tupiza Ltda COOPELECT de la ciudadde Tupiza Bolivia tiene instalados alrededor de diez mil medidores de consumoeleacutectrico analoacutegicos y digitales de uso domiciliario en los hogares de sus abona-dos que son monitoreados para determinar el consumo eleacutectrico de cada uno deellos El monitoreo lo realizan funcionarios que se desplazan por toda la ciudady registran el valor que exhibe la interfaz de los medidores junto con el nombredel abonado al que corresponde Esta informacioacuten es recopilada y utilizada paraemitir la factura correspondiente de cada abonado Finalmente la factura emitida

1Imagen tomada de httpsexpansionbacomar20200523medidas-para-amortiguar-el-costo-energetico-en-pymes

2Imagen tomada de httpswwwcasasbahiacombrmedidor-de-energia-monofasico-nansen-220v-100a-lumen-mc

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 12: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

12 Medicioacuten inteligente 3

es impresa y llevada por los funcionarios a los hogares de los abonados para quetengan conocimiento del monto que deben pagar por su consumo eleacutectrico

El proceso de monitoreo antes descrito es llevado a cabo una vez al mes por docefuncionarios quienes tardan alrededor de ocho diacuteas en registrar toda la infor-macioacuten de los medidores Posteriormente esa informacioacuten es introducida a unabase de datos que funciona en un servidor local ubicado en las oficinas centralesde COOPELECT La cantidad de kWh consumidos que deben ser facturados sedeterminan al restar el conteo de kWh del mes anterior con el actual En casosparticulares donde los funcionarios no pueden acceder al medidor para registrarel conteo de kWh consumidos se emite la factura con los datos del mes anterior

12 Medicioacuten inteligente

La mayoriacutea de los medidores de consumo eleacutectrico utilizados por parte de lascompantildeiacuteas que prestan dicho servicio sean estos analoacutegicos o digitales son dis-positivos cuya uacutenica funcioacuten es medir y exhibir mediante su interfaz la cantidadde kWh consumidos Esta informacioacuten uacutenicamente es uacutetil para la compantildeiacutea y nobrinda otros datos de relevancia Existen tambieacuten en el mercado otro tipo de me-didores cuyas prestaciones son beneficiosas tanto para la compantildeiacutea como para elabonado

Los medidores inteligentes o smart meters son dispositivos que graban informa-cioacuten como el consumo eleacutectrico niveles de voltaje corriente y factor de potenciaEsta informacioacuten es comunicada a la compantildeiacutea eleacutectrica para generar la factura-cioacuten de sus servicios y a los abonados para que tengan mayor conocimiento sobreel comportamiento de su consumo eleacutectrico Los smart meters tiacutepicamente gra-ban la informacioacuten eleacutectrica en tiempo real o en intervalos cortos a lo largo deldiacutea En la figura 13 se observa un smart meter

FIGURA 13 Smart meter de la firma emlite3

3Imagen tomada de httpswwwjwsmartmeterscoukbrandemlite

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 13: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

4 Capiacutetulo 1 Introduccioacuten general

Para mejorar el proceso de monitoreo y adquisicioacuten de informacioacuten sobre con-sumo eleacutectrico los smart meters representan una solucioacuten idoacutenea pero el costode su implementacioacuten los vuelve inviables para muchas compantildeiacuteas que ofrecenel servicio eleacutectrico Entonces debido a la problemaacutetica antes planteada existeun mercado creciente para medidores no inteligentes ampliados con un disposi-tivo que transfiere la informacioacuten sobre el consumo eleacutectrico a la compantildeiacutea y alabonado

El dispositivo antildeadido a los medidores eleacutectricos de uso convencional puede uti-lizar distintos tipos de sensores para obtener la informacioacuten de consumo eleacutectricoEstos son

Pinza de corriente es una bobina sujeta alrededor de un conductor eleacutectri-co Cuando la corriente pasa a traveacutes del conductor se genera un campoeleacutectrico La bobina mediraacute este campo eleacutectrico y lo traduciraacute a un flujo decorriente [3]

Caacutemara podriacutea ser situada en frente de del medidor y perioacutedicamente to-mar obtener fotografiacuteas del contador o pantalla Las lecturas del consumopueden ser extraiacutedas de estas fotografiacuteas con teacutecnicas de procesamiento deimaacutegenes [4]

Foto-reflector consiste en un LED y un fototransistor en una sola carcasaEste sensor es posicionado en frente del disco que poseen los medidoresanaloacutegicos cuando el LED emite luz es reflejada por el disco y medida porel fototransistor [5]

Fototransistor en conjunto con la salida de pulso oacuteptico de los medidoresdigitales se puede contar la cantidad de veces que el LED pasa de estadobajo a alto para determinar el consumo eleacutectrico [6]

13 Soluciones disponibles en el mercado

Como se mencionoacute en la subseccioacuten anterior dotar a los medidores convencio-nales de un dispositivo que ampliacutee sus funciones es una manera de mejorar elproceso de monitoreo y adquisicioacuten de informacioacuten de consumo eleacutectrico querealizan las compantildeiacuteas prestadoras de servicio

Comercialmente existen dispositivos que cumplen esta funcioacuten y utilizan algunode los sensores adecuados para este fin La fabricacioacuten de estos dispositivos serealiza sobre todo en Estados Unidos y algunos paiacuteses europeos A continuacioacutense listan algunos dispositivos que utilizan la salida de pulso oacuteptico de los medi-dores digitales para registrar el consumo de kWh

PA-FL [7] es un contador de pulsos con comunicacioacuten inalaacutembrica de la fir-ma SyxthSense Es alimentado mediante bateriacuteas o una fuente de tensioacuten de24 V y trabaja como parte de un sistema propietario de SyxthSense Puedeser instalado en medidores de electricidad agua o gas y transmitir inalaacutem-bricamente los datos que registra utilizando una modulacion de tipo FSK(Frequency Shift Keying modulacioacuten por desplazamiento de frecuencia) enla banda de 8683 MHz Tambieacuten posee dos salidas de potencia de 1 A y60 V que pueden ser utilizadas para interactuar con otros dispositivos eleacutec-tricos o electroacutenicos Dispone de una carcasa con certificacioacuten IP54 En lafigura 14 se muestra una fotografiacutea del dispositivo

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 14: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

13 Soluciones disponibles en el mercado 5

FIGURA 14 Registrador de pulsos PA-FL de la firma SyxthSense4

AirTM-100S [8] creado por la firma iNES es un dispositivo disentildeado paraadquirir datos de medidores de energiacutea eleacutectrica agua y gas Utiliza la sa-lida de pulso oacuteptico de medidores digitales para registrar el consumo delservicio Es alimentado por una bateriacutea de 36 V que le brinda un tiempo devida de aproximadamente cinco antildeos tiene carcasa con certificacioacuten IP65 ypuede transmitir utilizando redes Sigfox [9] a una frecuencia de 868 MHzEl dispositivo puede observarse en la figura 15

FIGURA 15 Registrador de pulsos AirTM-100S de la firma iNES5

4Imagen tomada de [7]5Imagen tomada de [8]

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 15: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

6 Capiacutetulo 1 Introduccioacuten general

14 Motivacioacuten

Hoy en diacutea no solo las compantildeiacuteas de servicio eleacutectrico estaacuten interesadas en losnuacutemeros que proporcionan los medidores domiciliarios sino tambieacuten los propiosabonados Con la introduccioacuten del smart meter la cantidad de electricidad consu-mida se puede comunicar en tiempo real al abonado Este consumo se presentaen un dispositivo por ejemplo un teleacutefono inteligente o una tableta que brindamaacutes informacioacuten a los abonados y los motiva a reducir su consumo de energiacuteahasta en un 9 [10] Entonces el trabajo se originoacute como una propuesta de CO-OPELECT para contar con una alternativa tecnoloacutegica que optimice el procesode monitoreo de los medidores que tiene instalados en la ciudad boliviana de Tu-piza y proporcione a sus usuarios una manera de conocer su consumo eleacutectricode manera oportuna

Otra motivacioacuten importante para la realizacioacuten de este trabajo fue la aplicacioacutende los conocimientos adquiridos en la carrera de Especializacioacuten para desarrollare implementar un dispositivo basado en buenas praacutecticas de desarrollo de firm-ware y hardware que sea lo suficientemente robusto y eficiente para que puedanreproducirlo por cientos o miles de unidades

15 Objetivos y alcance

El objetivo principal de este trabajo fue desarrollar e implementar un dispositivoelectroacutenico capaz de monitorear un medidor de consumo eleacutectrico de uso do-miciliario mediante la salida de pulso oacuteptico incorporada para proporcionar lainformacioacuten obtenida a la compantildeiacutea prestadora del servicio de manera remota ypermitir al abonado conocer su consumo eleacutectrico en el momento que realiza laconsulta a traveacutes de una interfaz graacutefica web

El alcance de este proyecto incluye

Un prototipo comercial que pueda ser instalado en los medidores de consu-mo eleacutectrico de COOPELECT

Manual de uso e instalacioacuten

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 16: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

7

Capiacutetulo 2

Introduccioacuten especiacutefica

Este capiacutetulo presenta los requerimientos del dispositivo una descripcioacuten de losbloques que lo componen y la planificacioacuten que se siguioacute para lograr satisfacto-riamente el desarrollo

21 Requerimientos

El dispositivo tiene dos tipos de requerimientos funcionales y no funcionalesLos funcionales se refieren a la capacidad para cumplir con ciertas tareas im-puestas que garantizan un correcto desempentildeo del dispositivo en general Losno funcionales tienen relacioacuten con temas de caraacutecter econoacutemico e informativo

211 Requerimientos funcionales

El dispositivo deberaacute poseer conexioacuten Wi-Fi1

El dispositivo deberaacute funcionar como servidor web local

El dispositivo deberaacute contar con la hora y fecha exactas

El dispositivo deberaacute interpretar los pulsos oacutepticos provenientes de un me-didor de consumo de energiacutea eleacutectrica domiciliario

El dispositivo deberaacute poseer una memoria no volaacutetil para registrar datoscomo la hora fecha conteo de pulsos e ID del usuario durante al menostres meses

El dispositivo deberaacute contar con un sistema de adquisicioacuten procesamien-to transmisioacuten y recepcioacuten de datos que podraacute ser implementado en unmicrocontrolador con Wi-Fi integrado

El dispositivo deberaacute poseer una interfaz web para que los usuarios puedanobservar un registro histoacuterico de su consumo de energiacutea eleacutectrica

El dispositivo deberaacute poder establecer conexioacuten con un gateway LoRa pa-ra enviar diariamente en formato decimal el consumo de energiacutea eleacutectricaexpresado kWh y el ID del usuario

212 Requerimientos de documentacioacuten y produccioacuten

El dispositivo deberaacute tener un precio menor a 50 $us

1Wi-Fi Es una tecnologiacutea inalaacutembrica para la interconexioacuten de dispositivos electroacutenicos

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 17: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

8 Capiacutetulo 2 Introduccioacuten especiacutefica

El dispositivo deberaacute contar con manuales de uso e instalacioacuten

22 Esquema general del sistema

Para cumplir con todos los requerimientos funcionales expuestos en la seccioacutenanterior los componentes miacutenimos necesarios y su interconexioacuten se muestran enel diagrama en bloques de la figura 21

RELOJEN

TIEMPOREAL

MICROCONTROLADOR

MEMORIANO

VOLAacuteTIL

TRANSCEPTORLORA

CONVERSOROacutePTICO-

ELEacuteCTRICOTRANSCEPTOR

WI-FI

FIGURA 21 Diagrama en bloques general del dispositivo

En el diagrama de la figura 21 el conversor oacuteptico-eleacutectrico transforma los pulsosde luz provenientes del LED de un medidor de consumo eleacutectrico a pulsos eleacutec-tricos y los entrega al microcontrolador El microcontrolador procesa estos pulsosy realiza el caacutelculo del consumo eleacutectrico Esa informacioacuten junto con la hora yfecha provenientes del reloj en tiempo real son almacenados en la memoria novolaacutetil para su posterior utilizacioacuten El transceptor Wi-Fi se comunica con el mi-crocontrolador para obtener los datos que seraacuten utilizados para generar la inter-faz graacutefica mostrada al usuario El transceptor LoRa tiene la funcioacuten de establecercomunicacioacuten bidireccional con un dispositivo concentrador LoRa para enviar lainformacioacuten de la memoria no volaacutetil y recibir paraacutemetros de funcionamiento

221 Conversor oacuteptico-eleacutectrico

Es el encargado de convertir la salida de pulso oacuteptico de medidores eleacutectricos di-gitales a pulsos eleacutectricos para que puedan ser interpretados por un microcontro-lador Esta informacioacuten determina el consumo eleacutectrico que registra el medidor

La salida de pulso oacuteptico de los medidores eleacutectricos digitales estaacute compuesta porun LED de color rojo que emite luz cuando se ha consumido una cierta cantidadde kWh El valor de la relacioacuten entre los pulsos emitidos y el consumo eleacutectricoes un paraacutemetro del medidor que variacutea seguacuten el modelo y la firma que lo fabrica

Para realizar la conversioacuten de pulsos de luz a pulsos eleacutectricos existen principal-mente dos transductores que cumplen cabalmente esta funcioacuten

Fotoresistencia es una resistencia cuyo valor se modifica en funcioacuten a la in-tensidad de luz incidente Tambieacuten es conocida como LDR (Light-Dependent

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 18: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

22 Esquema general del sistema 9

Resistor resistencia dependiente de la luz) [11] En la figura 22 se observauna fotoresistencia

FIGURA 22 Fotoresistencia GL55282

Fototransistor es un transistor sensible a la luz normalmente a los infra-rrojos La cantidad de luz incidente es proporcional a la corriente de basegenerada Generalmente tiene el factor de forma de un LED [11] Un foto-transistor de uso comuacuten se observa en la figura 23

FIGURA 23 Fototransistor IR333C3

222 Microcontrolador

Un microcontrolador es un circuito integrado programable capaz de ejecutar lasinstrucciones que tiene almacenadas Dispone de los tres componentes baacutesicosde una computadora memoria CPU (Central Processing Unit unidad central deprocesamiento) y perifeacutericos de entradasalida

Los microcontroladores son especiacuteficos de la aplicacioacuten y se utilizan para tareaspredefinidas Por ejemplo se puede usar un microcontrolador para controlar unmotor en un sistema roboacutetico Por el contrario una PC que utiliza un micropro-cesador es utilizada para aplicaciones que requieren un procesamiento intensocomo ejecutar grandes programas de graacuteficos en computadoras portaacutetiles [12] Por esa razoacuten generalmente no se utilizan PCs para realizar el trabajo de micro-controladore

Los fabricantes maacutes populares de microcontroladores son Analog Devices Cy-press Semiconductor Infineon Maxim Integrated Microchip NXP On Semicon-ductor Panasonic ROHM Semiconductor STMicroelectronics y Texas Instruments[13]

2Imagen tomada de httpswwwdevoboxcomenphotosensors38-photoresistor-ldr07html

3Imagen tomada de httpswwwsterencomgtfototransistor-de-5-mm-transparentehtml

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 19: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

10 Capiacutetulo 2 Introduccioacuten especiacutefica

En el mercado se pueden encontrar microcontroladores en diferentes factores deforma pero para el desarrollo de sistemas embebidos como el que se describeen este trabajo resulta conveniente utilizar tarjetas de desarrollo debido a queestas tienen toda la electroacutenica necesaria para funcionar ademaacutes de que ofrecenconectores estaacutendar para simplificar la interaccioacuten con otros dispositivos Una deestas tarjetas de desarrollo es la que muestra en la figura 24

FIGURA 24 Tarjeta de desarrollo del fabricante STMicroelectro-nics basada en el microcontrolador STM32F030R8T64

223 Transceptor Wi-Fi

Wi-Fi es un tecnologiacutea de red inalaacutembrica que permite a dispositivos como compu-tadoras y teleacutefonos celulares conectarse entre siacute para formar una red o conectarsea un enrutador por el que se disponga de conexioacuten a Internet Estaacute basado enla familia de estaacutendares IEEE 80211 que definen los protocolos que permiten lacomunicacioacuten entre dispositivos compatibles con Wi-Fi [14] Seguacuten la versioacuten deWi-Fi puede funcionar en las bandas de 24 GHz o 5 GHz[14]

En la tabla 21 muestran las caracteriacutesticas teacutecnicas de las distintas versiones delestaacutendar IEEE 80211 donde se puede apreciar claramente que la diferencia maacutesgrande es la velocidad de datos entre cada uno de los protocolos

TABLA 21 Tabla comparativa de caracteriacutesticas del estaacutendar IEEE802115

Protocolo 80211 Frecuencia Ancho de banda Velocidad de datos (Mbs)

a 5 GHz 20 MHz 5 9 12 18 24 36 48 54b 24 GHz 20 MHz 1 2 55 11g 24 GHz 20 MHz 6 9 12 18 24 36 48 54n 24 GHz y 5 GHz 20 MHz y 40 MHz 72 289 433 578 65 722

4Imagen tomada de httpswwwseeedstudiocomNUCLEO-L152RE-Development-Board-for-STM32-p-1934html

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 20: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

22 Esquema general del sistema 11

Dentro del modelo OSI [15] Wi-Fi se encuentra en la capa fiacutesica y de enlace dedatos En la figura 25 se ve el modelo OSI

FIGURA 25 Ubicacioacuten de Wi-Fi en el modelo OSI6

Una red Wi-Fi tiene una arquitectura de tipo estrella donde las estaciones estaacutenconectadas directamente a un punto central y todas las comunicaciones se hacennecesariamente a traveacutes de ese punto Esta red se ilustra en la figura 26

FIGURA 26 Arquitectura de una red Wi-Fi7

Los elementos principales de una red Wi-Fi son

Estaciones son dispositivos electroacutenicos que se conectan entre siacute a traveacutesde enrutadores inalaacutembricos Son maacutes conocidos como hosts y pueden sercomputadoras tabletas teleacutefonos celulares o sistemas embebidos

Puntos de acceso tambieacuten conocidos como access points son los elementosde la red que enrutan la informacioacuten proveniente de las estaciones dentrode la red local o hacia otras redes

Dentro de lo referido al desarrollo de sistemas embebidos comercialmente pue-den encontrarse moacutedulos Wi-Fi como el de la figura 27 Estos moacutedulos general-mente incorporan un microcontrolador de uso general para manejar el transcep-tor Wi-Fi

5Datos obtenidos de httpsmicrochipdevelopercomwifia-b-g-n-explained6Imagen tomada de httpsmicrochipdevelopercomwifi80211-osi7Imagen tomada de httpsrandomnerdtutorialscomesp32-access-point-ap-web-server

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 21: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

12 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 27 Moacutedulo Wi-Fi basado en el circuito integradoEMW31628

224 Transceptor LoRa

LoRa (Long Range largo alcance) es una teacutecnica de modulacioacuten de espectro ex-tendido derivada de la tecnologiacutea CSS (Chirp Spread Spectrum espectro extendidode tipo chirp) [16] Fue desarrollado por la firma Semtech y es utilizada principal-mente en dispositivos orientados a IoT (Internet of Things Internet de las cosas) ydispositivos alimentados por bateriacuteas Opera en las bandas de 433 Mhz 868 Mhzy 915 MHz seguacuten el paiacutes

Las comunicaciones LoRa son del tipo punto a punto es decir que un dispositivocon esta tecnologiacutea debe establecer un enlace directo con otro para intercambiarinformacioacuten Para formar redes LoRa es necesaria una capa de control de accesoal medio que es llamada LoRaWAN (Long Range Wide Area Network red de aacutereaamplia LoRa)

LoRaWAN es una especificacioacuten de redes LPWAN (Low Power Wide Area Net-work red de aacuterea amplia de baja potencia) y LoRa Alliance es la encargada desu estandarizacioacuten Estaacute disentildeada para conectar dispositivos de bajo consumoenergeacutetico a Internet a traveacutes de redes regionales nacionales o globales Ademaacutesproporciona comunicacioacuten bidireccional seguridad movilidad y servicios de lo-calizacioacuten[17]

En la figura 28 se puede observar el modelo de capas de una red de dispositivosLoRa donde el protocolo LoRa define la capa fiacutesica (PHY) y LoRaWAN la capade acceso al medio (MAC) Este modelo tiene muchas similitudes con el modelocapas OSI

FIGURA 28 Stack LoraWAN9

8Imagen tomada de httpswwwseeedstudiocomEMW3162-WiFi-Module-External-IPEX-antenn-p-2235html

9Imagen tomada de httpslora-developerssemtechcomlibrarytech-papers-and-guideslora-and-lorawan

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 22: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

22 Esquema general del sistema 13

Al igual que en una red Wi-fi la arquitectura de una red LoRaWAN es de tipoestrella y permite una conexioacuten multipunto entre dispositivos como se muestraen la figura 29

FIGURA 29 Arquitectura de una red LoraWAN10

De la figura 29 se distinguen cuatro tipos diferentes de elementos que conformanla red LoRaWAN Estos son

Nodos son los dispositivos que utilizan la tecnologiacutea LoRa como meacutetodo detransmisioacuten de datos Son utilizados para obtener datos de sensores o parainteractuar con actuadores Generalmente son dispositivos de bajo consumoenergeacutetico y alimentados por bateriacuteas

Concentradores tambieacuten conocidos como gateways son los encargados derecibir la informacioacuten de los nodos y reenviarla a un servidor de red Es-tos dispositivos tienen acceso a Internet mediante redes celulares Wi-Fi oEthernet

Servidores de red son los responsables del enrutamiento de los mensajesal dispositivo adecuado seleccionar el mejor gateway para el mensaje deenlace descendente eliminar mensajes duplicados y descifrar los mensajesque vienen cifrados desde los nodos

Servidores de aplicacioacuten es donde se realizan los procesos uacutetiles sobre losdatos obtenidos de los nodos Tiacutepicamente se ejecutan en una nube privadao puacuteblica

En el desarrollo de nodos para redes LoRaWAN se utilizan moacutedulos que llevanembebido un circuito integrado con tecnologiacutea LoRa y todos los componenteselectroacutenicos necesarios para que este funcione correctamente como el de la figu-ra 210 Cabe resaltar que muchos de estos moacutedulos no pueden cumplir ningunafuncioacuten si no son manejados por un microcontrolador que se comunique con ellospara configurarlos para mandar y recibir paquetes de datos Ademaacutes es manda-torio conectarles una antena adecuada antes de ser energizados

10Imagen tomada de httpswwwaprendiendoarduinocom20180305redes-lpwan

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 23: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

14 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 210 Moacutedulo LoRa basado en el circuito integradoRF9611

225 Reloj en tiempo real

Maacutes conocido como RTC (Real-Time Clock reloj en tiempo real) es un circuitointegrado que tiene la capacidad de llevar con precisioacuten la hora y fecha Paracontar con exactitud los segundos utiliza un oscilador de cristal de cuarzo de32768 kHz que puede o no estar embebido en el encapsulado del RTC

La principal aplicacioacuten de un RTC es brindar a un sistema electroacutenico la hora yfecha exactas tambieacuten puede ofrecer otras funciones como alarmas salidas dereloj de 1 Hz o medicioacuten de temperatura

Algunos RTCs tienen una fuente de poder alternativa basada en bateriacuteas quemantiene funcionando la parte del circuito que lleva la cuenta de la hora y fechaEsta fuente de tensioacuten normalmente son bateriacuteas de litio o supercapacitores [18]Comercialmente un RTC puede adquirirse como parte de un moacutedulo como el quese ve en la figura 211 que tiene instalada la fuente de alimentacioacuten alternativa ybrinda mayor facilidad para acceder a los pines del circuito integrado

FIGURA 211 Moacutedulo RTC basado en el circuito integradoDS130712

226 Memoria no volaacutetil

Es un tipo de memoria de lectura y escritura en la que los datos que tiene almace-nados se mantienen intactos cuando la fuente de alimentacioacuten deja de funcionares decir que no necesita energiacutea para mantener guardada la informacioacuten grabadaen ella [19]

En sistemas embebidos existen principalmente dos tipos de memorias no volaacuteti-les

11Imagen tomada de httpswwwantratekcomrfm95-lora-module12Imagen tomada de httpswwwantratekcomrfm95-lora-module

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 24: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

22 Esquema general del sistema 15

EEPROM (Electrically Erasable Programmable Read-Only Memory ROM borra-ble y programable eleacutectricamente) es un tipo de memoria ROM que puedeser programada y borrada mediante meacutetodos eleacutectricos Aunque puede serleiacuteda un nuacutemero ilimitado de veces las operaciones de escritura o borradode datos solo se pueden realizar entre cien mil y un milloacuten de veces Estetipo de memorias pueden encontrarse como circuitos integrados que ge-neralmente disponen de comunicacioacuten I2C (Inter-Integrated Circuit circuitointer-integrado) o SPI (Serial Pheriperal Interface interfaz perifeacuterica serial)Comercialmente se pueden encontrar moacutedulos EEPROM como el de la fi-gura 212

FIGURA 212 Moacutedulo EEPROM basado en el circuito integrado24C25613

Flash estaacute basada en las memorias EEPROM pero a diferencia de estas sepuede realizar la lectura y escritura de muacuteltiples posiciones de memoriade manera simultaacutenea lo que permite una mayor velocidad de funciona-miento El nuacutemero de operaciones de escritura o borrado es de diez mila un milloacuten Es empleada principalmente en la fabricacioacuten de memoriasUSB y unidades de estado soacutelido Asimismo los microcontroladores actua-les tienen integrada una unidad de memoria flash para el almacenamientode instrucciones y datos Para la realizacioacuten de pruebas y prototipos existencomercialmente moacutedulos de memoria flash con comunicacioacuten SPI como elde la figura 213

FIGURA 213 Moacutedulo flash basado en el circuito integradoW25Q16BVSIG14

13Imagen tomada de httpsallegroplofertamodul-z-pamiecia-at24c256-i2c-serial-eeprom-007-605596655714Imagen tomada de httpstiendasawerscombomicrocontroladores

memorias-eeprom-dataloggerscjmcu2516-modulo-memoria-flash

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 25: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

16 Capiacutetulo 2 Introduccioacuten especiacutefica

23 Planificacioacuten

De acuerdo a los requerimientos planteados en la seccioacuten 21 y en funcioacuten deldiagrama en bloques general del dispositivo mostrado en la seccioacuten 22 se con-feccionoacute una planificacioacuten de este trabajo como parte de la materia de gestioacuten deproyectos de la Carrera de Especializacioacuten en Sistemas Embebidos

El trabajo fue dividido en distintas actividades cada una cumple con uno o variosde los requerimientos planteados previamente En la figura 214 se observa eldiagrama AON (Activity On Node actividad en el nodo)

ANAacuteLISISPRELIMINAR

t=108

PROTOTIPO DEPRUEBAS

t=54

INICIO230919

DATA LOGGERt=39

DATACOMMUNICATION

t=42

WEB SERVERt=102

WEB INTERFACEt=69

PROTOTIPOCOMERCIAL

t=138

VERIFICACIOacuteN YVALIDACIOacuteN

t=51

CIERREt=111

FIN240820

DOCUMENTACIOacuteN HARDWARE

FIRMWARE SOFTWARE

PRUEBAS

TIPO DE ACTIVIDADt TIEMPO REQUERIDO

EXPRESADO EN HORASPARA REALIZAR LA

ACTIVIDAD

FIGURA 214 Diagrama AON del trabajo

Resalta que la cantidad de horas destinadas al desarrollo de firmware y hardwareson aproximadamente el 62 del tiempo previsto para el desarrollo del trabajo engeneral Esto guarda relacioacuten con el esfuerzo destinado para obtener resultadosque garanticen un buen desempentildeo teacutecnico del dispositivo desarrollado

Para mejorar el control del tiempo en el desarrollo de todas las actividades deltrabajo estas fueron desglosadas en tareas Estas tareas fueron planificadas y pro-gramadas seguacuten el diagrama de Gantt de las figuras 215 216 y 217

Los entregables del proyecto son los siguientes

Diagrama esquemaacutetico

Coacutedigo fuente

Prototipo comercial

Manual de uso e instalacioacuten

Informe final

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 26: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

23 Planificacioacuten 17

FIGURA 215 Primera parte del diagrama de Gantt

FIGURA 216 Segunda parte del diagrama de Gantt

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 27: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

18 Capiacutetulo 2 Introduccioacuten especiacutefica

FIGURA 217 Tercera parte del diagrama de Gantt

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 28: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

19

Capiacutetulo 3

Disentildeo e implementacioacuten

En este capiacutetulo se explica el proceso que se siguioacute para desarrollar e implementarel prototipo de pruebas el firmware la interfaz web y el prototipo comercial

31 Prototipo de pruebas

El prototipo de pruebas fue desarrollado con la finalidad de probar todas las fun-ciones de firmware que componen el trabajo para brindar una primera aproxi-macioacuten al prototipo comercial del dispositivo

Como se vio en el diagrama de la figura 21 el dispositivo estaacute compuesto por lossiguientes bloques funcionales microcontrolador transceptor Wi-Fi transceptorLoRa memoria no volaacutetil reloj en tiempo real y conversor oacuteptico-eleacutectrico

La construccioacuten del prototipo de pruebas se realizoacute en una breadboard que permi-tioacute realizar cambios en las conexiones de los componentes de una manera sencillacuando estos se requeriacutean Se eligieron componentes de hardware acordes con losbloques que constituyen el dispositivo en su mayor parte moacutedulos de desarrollocon circuitos integrados embebidos que disponen de conectores apropiados parauna breadboard En la figura 31 se muestra el diagrama en bloques general conlos componentes del prototipo de pruebas

MICROCONTROLADOR+ WI-FI

RTC + EEPROM

TRANSCEPTOR LORA

CONVERSOROacutePTICO-

ELEacuteCTRICO

FIGURA 31 Diagrama en bloques del prototipo de pruebas

Para garantizar un tiempo corto en la obtencioacuten de los componentes del prototipode pruebas el criterio predominante para la eleccioacuten de los componentes fue la

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 29: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

20 Capiacutetulo 3 Disentildeo e implementacioacuten

disponibilidad en el mercado local Ademaacutes la eleccioacuten de proveedores localesaseguroacute la restitucioacuten eficaz de los componentes que se malograron durante eldesarrollo

311 Microcontrolador + Wi-Fi

Este bloque fusiona los bloques microcontrolador y transceptor Wi-Fi El desa-rrollo de dispositivos con conexioacuten Wi-Fi ha tenido un gran crecimiento en losuacuteltimos antildeos [20] por lo que existen algunos fabricantes de circuitos integradosque ofrecen soluciones que integran microcontroladores y transceptores Wi-Fi enun solo encapsulado

El componente elegido para este bloque es la tarjeta de desarrollo NodeMCU dela firma Amica basado en el moacutedulo ESP-12F de la firma Ai-Thinker Las caracte-riacutesticas maacutes atractivas de esta tarjeta en lo referente al desarrollo son la alimenta-cioacuten y programacioacuten a traveacutes de un puerto micro USB factor de forma adecuadopara ser montado sobre un breadboard e incorporacioacuten de LEDs y pulsadores enla misma tarjeta En la figura 32 se muestra la NodeMCU

FIGURA 32 Tarjeta de desarrollo NodeMCU de la firma Amica1

El moacutedulo ESP-12F monta sobre siacute un SoC (System on a Chip sistema en un chip)de la firma Espressif Systems el ESP8266 que funciona como microcontrolador ytransceptor WiFi Otros componentes instalados sobre este moacutedulo son conden-sadores resistencias oscilador memoria flash y una antena impresa todos ellosnecesarios para que el ESP8266 pueda desempentildear correctamente sus funciones

El ESP8266 es un chip de bajo costo que incorpora un microcontrolador y untransceptor Wi-Fi ademaacutes de contar con un stack TCPIP Sus caracteriacutesticas teacutec-nicas maacutes relevantes son

Procesador Tensilica LX106 de arquitectura RISC (Reduced Instruction SetComputer computador con conjunto de instrucciones reducido) de 32 bitsa una frecuencia de 80 MHz

RAM de 64 KB para instrucciones y 96 KB para datos

ROM externa puede soportar hasta 16 MB de memoria flash con conexioacutenQSPI (Quad SPI SPI cuaacutedruple)

IEEE 80211 bgn

1Imagen tomada de httpswwwamazoncom-esKeeYees-Internet-Development-Wireless-CompatibledpB07PR9T5R5

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 30: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

31 Prototipo de pruebas 21

Perifeacutericos GPIO (General Purpose InputsOutputs entradassalidas de pro-poacutesito general) SPI I2C UART y ADC

312 Transceptor LoRa

Para la eleccioacuten del componente de este bloque hubo varias consideraciones Lamaacutes importante fue la frecuencia de transmisioacuten y recepcioacuten LoRa trabaja en lasfrecuencias de 433 MHz 868 MHz y 915 MHz de acuerdo al paiacutes donde se im-plementa Esto en Bolivia el espectro electromagneacutetico estaacute normado por la Au-toridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones y Transportes ATTa traveacutes del documento de plan de frecuencias [21] Alliacute se determina la frecuen-cia de 915 MHZ como la banda destinada para las aplicaciones ISM (IndustrialScientific and Medical industrial cientiacutefica y meacutedica) que es usada en otros paiacutesespara comunicaciones LoRa Este tipo de comunicaciones no estaacuten contempladasen dicho documento pero en el decreto supremo 4272 de fecha 24 de junio de2020 en su artiacuteculo 73[22] se especifica el procedimiento para la utilizacioacuten de lafrecuencia de 915 MHz para redes LPWAN (Low Power Wide Area Network redesde aacuterea amplia y bajo consumo) de manera libre

En el mercado local no se pudieron encontrar moacutedulos LoRa que funcionen a lafrecuencia de 915 MHz Se adquirieron los moacutedulos disponibles que trabajan enla frecuencia de 433 MHz lo que seguacuten el plan de frecuencia boliviano [21] estaacutedestinado a radioaficionados El moacutedulo utilizado para el prototipo de pruebasfue el PM1280 que estaacute basado el circuito integrado SX1278 En la figura 33 seobserva una fotografiacutea del moacutedulo PM1280

FIGURA 33 Moacutedulo LoRa PM12802

El circuito integrado SX1278 es un transceptor LoRa de la firma Semtech que pro-vee comunicacioacuten de espectro ensanchado de largo alcance y alta inmunidad alas interferencias Su principales caracteriacutesticas son

Potencia de transmisioacuten de 100 mW

Alta eficiencia del amplificador de potencia

Frecuencia de operacioacuten 137 MHZ a 525 MHZ

Velocidad de bit programable hasta 300 Kbps

Bajo consumo de corriente 99 mA en modo de recepcioacuten y 200 nA en laretencioacuten de datos en sus registros

2Imagen tomada de httpswwwtodomicrocomararduino910-modulorf-lora-sx1278-chip-pm1280-con-antenahtml

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 31: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

22 Capiacutetulo 3 Disentildeo e implementacioacuten

Soporta paquetes de hasta 256 bytes

Sensor de temperatura e indicador de bateriacutea incorporados

313 RTC + EEPROM

Los bloques memoria no volaacutetil y reloj en tiempo real fueron fusionados en unuacutenico bloque ya que comercialmente existen moacutedulos que cumplen ambas fun-ciones Estos moacutedulos tienen embebidos circuitos integrados de memoria y RTCademaacutes de otros componentes como resistencias condensadores osciladores zoacute-calos para bateriacuteas y conectores apropiados para un breadboard Estos moacutedulosen su gran mayoriacutea poseen una EEPROM como medio de almacenamiento dedatos esta tecnologiacutea es preferible sobre las memorias flash en aplicaciones deadquisicioacuten de datos ya que proporciona un nuacutemero mayor de ciclos de escritu-ra y borrado

La mayor parte de los moacutedulos que existen en el mercado local cumplen cabal-mente con las funciones que requiere este bloque pero debido a la cantidad depines utilizables de la NodeMCU se tuvo preferencia por los moacutedulos que teniacuteanintegrados chips con interfaz I2C Asimismo al haber muchos moacutedulos que cum-pliacutean el requisito de la interfaz se buscoacute uno que tuviera un RTC con la capacidadde generar alarmas en funcioacuten de la hora En la figura 32 se observa el moacutedulode RTC + EEPROM elegido

FIGURA 34 Moacutedulo RTC + EEPROM3

Los circuitos integrados que componen el moacutedulo son el DS3231 y el AT24C32un RTC y una EEPROM respectivamente El DS3231 es un RTC de alta precisioacutende la firma Maxim Integrated que cuenta con una interfaz I2C para conectarsecon otros dispositivos tambieacuten tiene la capacidad de generar alarmas y medir latemperatura El AT24C32 es una EEPROM de la firma Microchip con interfaz I2Cy 32 KB de capacidad de almacenamiento

314 Conversor oacuteptico-eleacutectrico

Para este bloque el componente elegido es un moacutedulo detector de luz compuestopor un fototransistor PT333-3C de la firma Everlight y un comparador de voltajeLM393 de la firma Texas Instruments El moacutedulo genera como salida un pulsoeleacutectrico acotado al nivel de tensioacuten con el que se alimenta Cuando la cantidad

3Imagen tomada de httpselectropeakcomextremely-accurate-rtc-module

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 32: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Disentildeo de firmware 23

de luz incidente en el fototransistor provoca un nivel de tensioacuten igual o mayor alnivel de tensioacuten del potencioacutemetro que viene incluido En la figura 35 se puedeobservar el moacutedulo

FIGURA 35 Moacutedulo detector de luz4

32 Disentildeo de firmware

El desarrollo del firmware fue la actividad que requirioacute maacutes esfuerzo en el trabajodebido a que el principal objetivo del autor fue escribir coacutedigo que pudiera serreutilizado en futuros proyectos Otro objetivo fue lograr modularizacioacuten en elcoacutedigo escrito que permitiera probar cada moacutedulo de firmware individualmentePara lograr dichos objetivos el firmware fue estructurado en capas y se utilizoacutecontrol de versiones para documentarlo De esta manera se logroacute un desarrollode caraacutecter maacutes profesional que podriacutea ser reutilizado en futuros proyectos querequieran funciones similares

Antes de realizar la separacioacuten del firmware en capas fue necesario elegir lasherramientas de desarrollo implicadas que fueron imprescindibles al momentode escribir el coacutedigo fuente del dispositivo Estas herramientas fueron un SDK(Software Deveplopment Kit kit de desarrollo de software) que proporcionoacute unaAPI (Application Programming Interface interfaz de programacioacuten de aplicaciones)para facilitar el desarrollo de coacutedigo fuente para el ESP8266 y un IDE (Integra-ted Development Enviroment Entorno de Desarrollo Integrado) que proporcionoacuteun entorno con herramientas que agilizaron la escritura de coacutedigo con el SDKelegido Estos fueron

ESP8266_RTOS_SDK este SDK fue desarrollado por la firma Espressif Sys-tems para la programacioacuten del SoC ESP8266 y facilita un conjunto de fun-ciones para la creacioacuten de coacutedigo fuente Estaacute basado en el RTOS (Real-TimeOperating System sistema operativo en tiempo real) de uso gratuito FreeR-TOS [23] que fue utilizado en las materias sobre sistemas operativos entiempo real de la Carrera de Especializacioacuten y brindoacute funciones que ayu-daron a lograr determinismo en la ejecucioacuten de las tareas del dispositivoAsimismo contiene un documentacioacuten completa sobre las funciones queincorpora y ejemplos de uso

4Imagen tomada de httpswwwroboter-bausatzdeendiy-electronicsextension-modulessensorsoptics-light149light-sensor-module

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 33: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

24 Capiacutetulo 3 Disentildeo e implementacioacuten

Eclipse el aspecto maacutes importante en la eleccioacuten de este IDE fue que en ladocumentacioacuten de instalacioacuten y uso del ESP8266_RTOS_SDK [24] se indi-caba el proceso de configuracioacuten que permitioacute utilizar ambos en conjuntoOtro aspecto de importancia fue la experiencia previa del autor con esteIDE fue utilizado en varias materias de la Carrera de Especializacioacuten

Entonces una vez definidas las herramientas utilizadas fue posible dividir elfirmware en capas para facilitar el desarrollo y reducir la complejidad del coacutedigoescrito para el dispositivo La divisioacuten en capas del firmware puede observarse enel diagrama de la figura 36 donde existen tres capas claramente diferenciadasAPP DRIVERS y BASE

BASE

DRIVERS

APP

DATALOGGER

GPIO I2C SPI HSPI HTTP WIFI

RTC EEPROM LORA SPIFFS

DATACOMMUNICATION

WEBSERVER

FIGURA 36 Diagrama de capas del firmware

BASE es la capa de menor nivel y estaacute compuesta por la API del ESP8266_RTOS_SDKProporciona a las capas de niveles superiores la capacidad de interactuar con losperifeacutericos y protocolos incorporados en el ESP8266 a traveacutes de funciones en len-guaje C Los perifeacutericos y protocolos que fueron utilizados en el presente trabajofueron

GPIO este perifeacuterico fue utilizado por la capa APP para gestionar los pinesdisponibles en el ESP8266 ya que algunos de ellos tienen funciones espe-ciacuteficas y no pueden ser utilizados para propoacutesitos generales La API poseefunciones para definir los pines como entradas o salidas configuracioacuten deinterrupciones por flanco positivo o negativo y resistencias de pull-up inter-nas

I2C se utilizoacute este perifeacuterico para que la capa DRIVERS interactuacutee con elRTC y la EEPROM Al tener pocos pines disponibles en el ESP8266 estecomponente se hizo muy importante ya que la comunicacioacuten I2C solo re-quiere dos pines uno para datos y otro el reloj de sincronizacioacuten

SPI la capa DRIVERS utiliza este perifeacuterico para comunicarse con el trans-ceptor LoRa El moacutedulo LoRa elegido interacciona a traveacutes del protocoloSPI con el microcontrolador que lo maneja para transmitir o recibir datos

HSPI el ESP8266 no posee memoria ROM embebida en el SoC por tan-to utiliza una memoria flash externa para almacenar las instrucciones delprograma y los datos del usuario Esta memoria flash se comunica con elESP8266 mediante el protocolo HSPI Este perifeacuterico se utilizoacute para que lacapa DRIVERS configure la flash como un sistema de archivos

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 34: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Disentildeo de firmware 25

HTTP (HyperText Transfer Protocol protocolo de transferencia de hipertexto)la API ofrece funciones para ejecutar este protocolo Fue de utilidad paraproporcionar a la capa APP las funciones necesarias para implementar unservidor web capaz de responder a los meacutetodos HTTP GET y POST [25]

WIFI el ESP8266 tiene embebida toda la electroacutenica necesaria para imple-mentar los protocolos IEEE 80211 en sus versiones b g y n La capa APPutilizoacute las funciones disponibles de este moacutedulo para lograr que el disposi-tivo funcionara como punto de acceso yo estacioacuten Wi-Fi

La capa DRIVERS estaacute compuesta por moacutedulos que son bibliotecas de firmwareque le permiten al ESP8266 interactuar con los perifeacutericos de hardware externosa los que estaacute conectado Se desarrollaron bibliotecas para los moacutedulos EEPROMRTC LORA y SPIFFS todos basados en la capa BASE

La biblioteca para la EEPROM se desarrolloacute con ayuda del datasheet [26] del AT24C32donde se indican todos los pormenores teacutecnicos del funcionamiento de este cir-cuito integrado Ademaacutes se utilizaron las funciones de la capa BASE para ges-tionar correctamente la comunicacioacuten I2C Las funciones que proporciona estabiblioteca sirven para

inicializar el perifeacuterico I2C

leer de valores de 8 16 y 32 bits de una direccioacuten determinada de la EPROM

escribir de valores de 8 16 y 32 bits de una direccioacuten determinada de laEPROM

Para el moacutedulo RTC se desarrolloacute una biblioteca que sirvioacute para configurar lahora fecha y otras funciones incorporadas en el DS3231 La herramienta principalen el desarrollo de esta biblioteca fue el datasheet [27] de dicho circuito integradoDe este se obtuvo informacioacuten sobre las direcciones de los registros que manejansus funciones y la forma adecuada de configurarlos Igual que para la bibliotecade la EEPROM las funciones de la capa BASE para el protocolo I2C permitieronque se disponga de una manera para que el ESP8266 pueda intercambiar datoscon el DS3231 con la menor cantidad de pines posible Esta biblioteca permite

inicializar el perifeacuterico I2C

leer y configurar las horas minutos y segundos

leer y configurar el diacutea fecha mes y antildeo

leer y configurar las dos alarmas disponibles

leer y configurar las salidas digitales

El desarrollo de la biblioteca para el moacutedulo LORA permitioacute manejar el circui-to integrado SX1278 para establecer la comunicacioacuten de este elemento con elESP8266 a traveacutes del perifeacuterico SPI Esto permitioacute configurar sus paraacutemetros paralograr la transmisioacuten y recepcioacuten de datos con dispositivos de tecnologiacutea LoRade manera exitosa Estaacute basada en la biblioteca Arduino LoRa de Sandeep Mistry[28] y en la informacioacuten del datasheet [29] del SX1278 Asimismo utiliza las fun-ciones proporcionadas por la capa BASE para la comunicacioacuten SPI Las funcionesmaacutes importantes que proporciona son

inicializar el perifeacuterico SPI

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 35: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

26 Capiacutetulo 3 Disentildeo e implementacioacuten

configurar la frecuencia del moacutedulo

transmitir un buffer de tamantildeo variable

recibir datos en el buffer interno

leer el valor del RSSI (Received Signal Strength Indication indicador de fuerzade la sentildeal recibida) de los datos recibidos en el buffer interno

establecer el modo de funcionamiento en bajo consumo

configurar la potencia de transmisioacuten

configurar el ancho de banda

habilitardeshabilitar el CRC (Cyclic Redundancy Check verificacioacuten de re-dundancia ciacuteclica)

Por uacuteltimo se desarrolloacute una biblioteca para establecer un sistema de archivosmuy reducido llamado SPIFFS (SPI Flash File System sistema de archivos flashSPI) que estaacute albergado en la memoria flash externa utilizada para almacenar elprograma del ESP8266 Esta biblioteca requirioacute menos esfuerzo en su desarrolloque las anteriores debido a que la mayoriacutea de las funciones necesarias para con-figurar el sistema de archivos son parte de la API del ESP8266_RTOS_SDK y parael manejo de archivos se utilizaron las funciones estaacutendar de C Solo posee unafuncioacuten para inicializar el sistema de archivos que configura la cantidad maacuteximade elementos y su capacidad de almacenamiento

El tamantildeo de este sistema de archivos es de 1 MB y fue configurado de acuerdoal tamantildeo total de la memoria flash que en el moacutedulo ESP-12F es de 4 MB El res-tante se utilizoacute para el programa datos de faacutebrica y datos de configuracioacuten de lainterfaz fiacutesica El detalle de los archivos almacenados en SPIFFS puede observarseen la tabla 31

TABLA 31 Tabla de detalle del contenido del sistema de archivosSPIFFS

Nombre Tamantildeo (KB) Descripcioacuten

ajax-loadergifgif 62 Imagen de carga de la interfaz webfaviconico 11 Iacutecono de la interfaz webhighchartsjsgz 92 Biblioteca JavaScript Highcharts comprimidahighchartsmapgz 2356 Archivo de mapeo para highchartsjsgzindexhtml 73 Documento HTML de la interfaz webjqueryjsgz 332 Biblioteca JavaScript jQuery comprimidajquerymobilecssgz 251 Hoja de estilos CSS de la bibliote jQuery Mobilejquerymobilejsgz 555 Biblioteca JavaScript jQuery Mobile comprimidajquerymobilemapgz 888 Archivo de mapeo para jquerymobilejsgzconfigtxt 06 Archivo de configuracioacuten del dispositivokwhcsv 1 Archivo con el registro histoacuterico del consumo eleacutectrico

La mayoriacutea de los archivos almacenados en SPIFFS son utilizados para generarla interfaz web excepto configtxt y kwhcsv El tamantildeo de memoria utilizadopor todos los archivos es de 5464 KB que ocupa aproximadamente un 54 deltamantildeo total del sistema de archivos Hay que notar que los archivos de mayortamantildeo fueron comprimidos antes de ser almacenados ya que sin este proceso el

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 36: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Disentildeo de firmware 27

tamantildeo total hubiera sido de 16 MB que superaba aproximadamente en un 60 el tamantildeo del sistema de archivos

La capa APP estaacute compuesta por los moacutedulos que ejecutan las tareas del dis-positivo Se basa en las capas inferiores para interactuar con los perifeacutericos delESP8266 y con el hardware externo Sus moacutedulos son DATA LOGGER DATACOMMUNICATION y WEB SERVER

321 DATA LOGGER

Este moacutedulo tiene la funcioacuten principal de adquirir procesar y almacenar la in-formacioacuten de consumo eleacutectrico del medidor al que estaacute instalado el dispositivoPara este fin se comunica con los moacutedulos de las capas inferiores como se mues-tra en el diagrama de la figura 37

DATA LOGGER

I2C HSPI

RTC EEPROM SPIFFS

GPIO

FIGURA 37 Diagrama de capas para DATA LOGGER

Utiliza el RTC y la EEPROM para mantener un registro histoacuterico de la informa-cioacuten adquirida por GPIO Modifica el archivo kwhcsv almacenado en SPIFFSpara actualizar la informacioacuten de consumo eleacutectrico cuando se registran nuevosdatos Este archivo es utilizado posteriormente por WEB SERVER Asimismo enfuncioacuten de las alarmas generadas por el RTC se enviacutean los datos de la EEPROMa DATA COMMUNICATION

Dentro del sistema operativo utilizado existen dos tareas para este moacutedulo Unapara registrar los pulsos del medidor eleacutectrico y otra para manejar las alarmasdel RTC pulses_task y alarm_task Estas tareas utilizaron algunas herramientasproporcionadas por FreeRTOS para gestionar la comunicacioacuten entre moacutedulos Enla figura 38 se observa un diagrama que muestra la manera en que se realiza lacomunicacioacuten con ayuda de las herramientas de FreeRTOS

DATA LOGGER

GPIO

GPIO DATACOMMUNICATION

ALARM

PULSES

TASK NOTIFICATION

TASK NOTIFICATION

QUEUEpulses_task

alarm_task

FIGURA 38 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA LOGGER

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 37: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

28 Capiacutetulo 3 Disentildeo e implementacioacuten

De la figura 38 ALARM representa las alarmas generadas por el RTC y PUL-SES los pulsos eleacutectricos provenientes del conversor oacuteptico-eleacutectrico PULSES yALARM son conectados cada uno a un pin manejado por GPIO que utiliza in-terrupciones por flanco de subida para generar notificaciones a pulses_task yalarm_task Una de las funciones de la tarea alarm_task es enviar por una colalos datos de consumo eleacutectrico a DATA COMMUNICATION Mediante los dia-gramas de flujo de las figuras 39 y 310 se puede apreciar el funcionamiento deestas tareas

INICIO

ACUMULAR Y ALMACENAR EN LAEEPROM EL CONTEO DE PULSOS

FIN

NO

SINOTIFICACIOacuteN

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

FIGURA 39 Diagrama de flujo de la tarea pulses_task

ENVIAR EL CONTEO DE PULSOS ADATA COMMUNICATION

INICIO

AUMENTAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

SI

NO

NOTIFICACIOacuteN

SIDIacuteA

NUEVO

REINICIAR Y ALMACENAREN LA EEPROM EL IacuteNDICE

REINICIAR Y ALMACENAR EN LA EEPROM EL CONTEO DE PULSOS

AUMENTAR Y ALMACENAR EN LA EEPROMEL CONTEO DE DIacuteAS REGISTRADOS

ABRIR SECCIOacuteN CRIacuteTICA

CERRAR SECCIOacuteN CRIacuteTICA

INICIO

SIOFFSET

FIGURA 310 Diagrama de flujo de la tarea alarm_task

Seguacuten el diagrama de flujo de la figura 39 la tarea pulses_task espera por unanotificacioacuten provocada por el flanco de subida de los pulsos eleacutectricos del conver-sor oacuteptico-eleacutectrico Cuando esto ocurre se abre una seccioacuten criacutetica para prevenirque existan cambios de contexto dentro del sistema operativo que modifiquen los

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 38: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Disentildeo de firmware 29

datos implicados antes de que estos puedan ser utilizados Una vez en la seccioacutencriacutetica en una variable de 16 bits se cuentan la cantidad de pulsos detectados yse almacenan en la EEPROM en una direccioacuten de memoria definida por una va-riable que hace referencia al iacutendice Finalmente se cierra la seccioacuten criacutetica y esteproceso se lleva a cabo mientras el dispositivo funcione

En el diagrama de la figura 310 los pulsos eleacutectricos generados por una de lassalidas del RTC notifican a la tarea alarm_task Cuando esto ocurre se abre unaseccioacuten criacutetica donde mediante una cola se enviacutea el valor de la variable que tieneel conteo de pulsos al moacutedulo DATA COMMUNICATION Con ayuda del RTCsi se detecta un cambio de fecha se ejecutan instrucciones para que la cantidad depulsos contada a partir de ese momento se reinicie y se almacene en un posicioacutendiferente de la EEPROM lo que evita que los datos en esta memoria se sobres-criban mientras exista espacio suficiente para almacenar maacutes informacioacuten Si nose detecta un cambio en la fecha o en caso contrario se ejecutoacute todo el procesoantes descrito para la modificacioacuten del iacutendice de la EEPROM la tarea terminapero vuelve a repetirse cada vez que ocurre una nueva notificacioacuten

Para que este moacutedulo funcione correctamente cuando el dispositivo es encendidose ejecuta una funcioacuten de inicializacioacuten data_logger_init En el diagrama de flujode la figura 311 se ilustra su comportamiento

INICIO

INICIALIZAR EEPROMRTC GPIO Y SPIFFS

SIEEPROMVACIacuteA

CARGAR DE SPIFFS VALORES DE CONFIGURACIOacuteN

ALMACENAR EN LA EEPROMDATOS POR DEFECTO

CARGAR DE LA EEPROM EL CONTEODE PULSOS Y EL IacuteNDICE

CONIFIGURAR FRECUENCIA DE ENVIacuteODE DATOS A DATA COMMUNICATION

FIN

CREAR LAS TAREAS DEL MOacuteDULO

FIGURA 311 Diagrama de flujo de la funcioacuten data_logger_init

El procedimiento de inicializacioacuten del moacutedulo empieza con la configuracioacuten deEEPROM RTC GPIO y SPIFFS para utilizar sus funciones De SPIFFS se obtienela configuracioacuten guardada en el archivo configtxt que posteriormente seraacute uti-lizada para configurar algunos aspectos del funcionamiento Se hace una lecturade la EEPROM para verificar si esta tiene datos de un funcionamiento anterioren caso negativo se almacenan datos por defecto Se cargan las variables de con-teo de pulsos iacutendice y conteo de diacuteas registrados de la EPROM Se configura lafrecuencia de enviacuteo del conteo de pulsos seguacuten la configuracioacuten obtenida previa-mente de configtxt Finalmente se crean las tareas pulses_task y alarm_task

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 39: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

30 Capiacutetulo 3 Disentildeo e implementacioacuten

Otra de las funciones de este moacutedulo es la modificacioacuten del archivo kwhcsv paraactualizar su contenido con la informacioacuten de consumo eleacutectrico registrada hastael momento de su ejecucioacuten Para esto abre el archivo kwhcsv en modo de es-critura y seguacuten la cantidad de diacuteas registrados se generan el nuacutemero de filas delarchivo Este archivo posee dos columnas date y kwh que son la fecha del regis-tro y el consumo eleacutectrico respectivamente En la tabla 32 se observa a modo deejemplo el contenido que tendriacutea kwhcsv

TABLA 32 Tabla de detalle del contenido de kwhcsv

date kwh

01-01-20 62102-01-20 41103-01-20 52504-01-20 60105-01-20 32206-01-20 690

322 DATA COMMUNICATION

La funcioacuten de este moacutedulo se basa en utilizar el transceptor LoRa para intercam-biar informacioacuten con un dispositivo concentrador de datos de la misma tecnolo-giacutea Sus tareas principales son enviar la cantidad de pulsos registrados y recibirparaacutemetros de funcionamiento Para esto se comunica con otros moacutedulos de lascapas inferiores como se muestra en la figura 312

DATA COMMUNICATION

SPI HSPI

LORA SPIFFS

FIGURA 312 Diagrama de capas para DATA COMMUNICA-TION

Para que este moacutedulo pueda enviar o recibir informacioacuten utiliza las funcionesproporcionadas por LORA que a su vez emplea el perifeacuterico SPI Cuando recibeinformacioacuten del dispositivo concentrador de datos se accede a SPIFFS para modi-ficar el archivo configtxt lo que actualiza los paraacutemetros de funcionamiento deldispositivo

Este moacutedulo posee una solo tarea que se ejecuta en el sistema operativo nombra-da lora_task que se comunica con el moacutedulo DATA LOGGER para recibir datosque deben ser enviados por el transceptor LoRa En las figuras 313 y 314 pue-den observarse su interaccioacuten el moacutedulo DATA LOGGER y su digrama de flujorespectivamente

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 40: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Disentildeo de firmware 31

DATACOMMUNICATION

DATALOGGER

QUEUE

lora_task

FIGURA 313 Diagrama de conexioacuten con las herramientas deFreeRTOS de DATA COMMUNICATION

INICIO

SIMENSAJES ENCOLA

CONFIGURAR LORA EN MODO TX

ARMAR Y TRANSMITIR PAQUETE

CONFIGURAR LORA EN MODO RX

SISE RECIBIOacutePAQUETE

EXTRAER LOS DATOS DEL PAQUETE

BLOQUEAR POR 1 SEG

FIN

EJECUTAR LA OPERACIOacuteN INDICADAPOR EL PAQUETE

VERIFICAR EL PAQUETE

FIGURA 314 Diagrama de flujo de la tarea lora_task

Del diagrama de la figura 314 esta tarea consulta la cola de mensajes para de-terminar si existe alguacuten elemento pendiente de atencioacuten Si existen mensajes pen-dientes en la cola se configura el transceptor LoRa en modo de transmisioacuten searma un paquete con los datos de consumo eleacutectrico e identificador del usua-rio y se transmite Si la cola estaacute vaciacutea o se envioacute un paquete anteriormente seconfigura el transceptor LoRa en modo de recepcioacuten y se espera la recepcioacuten depaquetes Cuando se recibe un paquete se verifica si tiene el formato correcto encuyo caso se extraen los datos que contiene y luego se ejecuta la accioacuten reque-rida por estos Finalizado todo este proceso el sistema operativo pone la tareaen el estado bloqueado por un segundo finaliza y vuelve a repetirse mientras eldispositivo esteacute en funcionamiento

El formato de los paquetes es el que se muestra en la figura 315 Donde ADDRes un campo de 8 Bytes que identifica al transmisor del paquete OP es de 1Byte y define los elementos de configtxt deben ser modificados por ejemplo lafrecuencia de enviacuteo de datos y la constante impulsoskwh del medidor DATAtiene una longitud de 8 Bytes y contiene los datos con los que se ejecutan lasoperaciones requeridas por el campo OP

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 41: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Capiacutetulo 3 Disentildeo e implementacioacuten

OP DATAADDR8 Bytes 1 Byte 8 Bytes

FIGURA 315 Formato de los paquetes enviados y recibidos porDATA COMMUNICATION

Este moacutedulo tiene una funcioacuten de inicializacioacuten que debe ser ejecutada cuandoel dispositivo es energizado y el ESP8266 empieza a ejecutar el coacutedigo que tienegrabado denominada data_communication_init Su comportamiento se muestraen el diagrama de flujo presentado en la figura 316

INICIO

INICIALIZAR LORA Y SPIFFS

SICOLA

CREADA

CREAR COLA

CREAR LA TAREADEL MOacuteDULO

FIN

CARGAR DE SPIFFS VALORESDE CONFIGURACIOacuteN

INDICAR ERROR

FIGURA 316 Diagrama de flujo de la funcioacuten da-ta_communication_init

Esta funcioacuten de inicializacioacuten ejecuta todos los procesos necesarios para confi-gurar el transceptor LoRa y SPIFFS antes de utilizarlos Carga la informacioacuten deconfiguracioacuten del archivo configtxt Posteriormente intenta crear una cola pa-ra recibir informacioacuten del moacutedulo DATA LOGGER Si esta no puede ser creadatermina la funcioacuten e indica un error Finalmente si el proceso anterior se reali-zoacute exitosamente se crea la tarea lora_tasl que deberaacute ejecutarse para transmitir yrecibir paquetes durante el funcionamiento del dispositivo

323 WEB SERVER

El objetivo de este moacutedulo es establecer un servidor web con la capacidad de in-teractuar con dispositivos que dispongan de conexioacuten Wi-Fi para permitirles leero modificar el contenido del sistema de archivos Para cumplir con lo planteadoanteriormente se utilizan los componentes de las capas inferiores como indica lafigura 317

WEB SERVER utiliza las funciones del protocolo HTTP para establecer un servi-dor que puede comunicarse con muacuteltiples clientes HTTP mediante los meacutetodosGET y POST para la transferencia y modificacioacuten de los archivos almacenados enSPIFFS El moacutedulo WIFI proporciona funciones para que WEB SERVER configuree inicialice la interfaz fiacutesica del transceptor Wi-Fi del ESP8266 Este moacutedulo no seasocia con DATA LOGGER ni con DATA COMMUNICATION para intercambiardatos

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 42: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

32 Disentildeo de firmware 33

WEB SERVER

HTTP HSPI

SPIFFS

IEEE 80211

FIGURA 317 Diagrama de capas para WEB SERVER

Este moacutedulo puede configurar el dispositivo como punto de acceso o como esta-cioacuten Esto se hace de manera automaacutetica y depende de la informacioacuten contenidaen el archivo de configuracioacuten almacenado en SPIFFS configtxt Si existe infor-macioacuten de red el dispositivo se configura como estacioacuten en caso contrario comopunto de acceso En cualquiera de los dos modos citados los clientes pueden ac-ceder al servidor a traveacutes de su direccioacuten de red como indican las figuras 318 y319

HTTP CLIENT

HTTP CLIENT

WEB SERVER

80211 bgn

80211 bgn

FIGURA 318 WEB SERVER en modo punto de acceso

HTTP CLIENT

HTTP CLIENT

ACCESS POINT

80211 bgn

Ethernet

WEB SERVER

80211 bgn

FIGURA 319 WEB SERVER en modo estacioacuten

En la figura 318 el dispositivo estaacute configurado en modo punto de acceso y elservidor web puede ser accedido directamente por un cliente HTTP que cuentecon conectividad Wi-Fi Por otro lado en la figura 319 el dispositivo estaacute confi-gurado en modo estacioacuten y los clientes HTTP solo podraacuten acceder a este a traveacutesde un punto de acceso con conectividad Wi-Fi que enrute las conexiones

WEB SERVER tiene la capacidad de responder a peticiones GET y POST prove-nientes de los clientes HTTP gracias a una tarea propia del ESP8266_RTOS_SDKlsquoque se ejecuta todo el tiempo en el sistema operativo El meacutetodo GET es utiliza-do para solicitar los archivos necesarios para generar la interfaz web mientrasque el meacutetodo POST se utiliza para modificar el archivo configtxt almacenado

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 43: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

34 Capiacutetulo 3 Disentildeo e implementacioacuten

en SPIFFS Para esto WEB SERVER utiliza funciones conocidas como handlersque se ejecutan para transferir los recursos cuyos nombres coinciden con la URI(Uniform Resource Identifier identificador de recursos uniforme) de la peticioacuten con elmeacutetodo GET En el caso del meacutetodo POST se lee el cuerpo del mensaje recibidopara extraer los paraacutemetros con los que debe ser modificado configtxt y actuali-zar la informacioacuten de conexioacuten de red Wi-Fi

Como los moacutedulos DATA LOGGER y DATA COMMUNICATION WEB SERVERtambieacuten posee una funcioacuten de inicializacioacuten que configura todos los moacutedulos decapas inferiores de los que depende para que pueda cumplir su propoacutesito Eldiagrama de flujo de la figura 320 es utilizado para explicar su funcionamiento

INICIO

INICIALIZAR WIFI HTTP Y SPIFFS

SIFALLOacute LA

CONEXIOacuteN

CONFIGURAR WI-FI EN MODO STA

CONFIGURAR WI-FI EN MODO AP

INICIAR SERVIDOR HTTP

REGISTRAR LOS HANDLERS PARALOS MEacuteTODOS GET Y POST

INICIO

CARGAR DE SPIFFS VALORES DECONFIGURACIOacuteN

FIGURA 320 Diagrama de flujo de la funcioacuten de inicializacioacuten delmoacutedulo WEB SERVER

En esta funcioacuten el primer paso es inicializar los moacutedulos WIFI HTTP y SPIFFSpara utilizar su funciones Se recupera la configuracioacuten de red de configtxt yse configura el dispositivo en modo estacioacuten Si no existe dicha informacioacuten deconfiguracioacuten o es invaacutelida la conexioacuten en modo estacioacuten falla y se configura eldispositivo en modo punto de acceso En cualquiera de los dos casos el siguientepaso es iniciar un servidor HTTP en el puerto 80 y finalmente registrar todos loshandlers para los meacutetodos GET y POST

33 Interfaz web

El disentildeo e implementacioacuten de una interfaz web tiene como objetivo proporcionara los usuarios es decir a los abonados de las compantildeiacuteas eleacutectricas la capacidad deinteractuar con el dispositivo para visualizar graacuteficamente informacioacuten relativa asu consumo eleacutectrico y configurar paraacutemetros de la conexioacuten Wi-Fi

Para el desarrollo se utilizoacute el IDE Visual Studio Code que ofrece un entornode desarrollo muy intuitivo y tambieacuten brinda la posibilidad de descargar pluginsque facilitan la escritura de coacutedigo Asimismo se utilizaron distintos lenguajesenfocados en el desarrollo web para brindar a la interfaz una estructura biendefinida esteacutetica y funcionalidad Estos fueron

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 44: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

33 Interfaz web 35

HTML se utilizoacute para definir todos los aspectos estructurales de la interfazcomo la ubicacioacuten de los elementos las llamadas a bibliotecas externas yotros paraacutemetros informativos La versioacuten utilizada fue HTML 5

CSS brindoacute control sobre la presentacioacuten formato y el disentildeo de la interfaz

JavaScript permitioacute dotar de funcionalidad a los elementos de la interfazFue necesaria para realizar el procesamiento de los datos provenientes deldispositivo

jQuery Mobile con esta biblioteca fue posible darle a la interfaz un aspectode aplicacioacuten para teleacutefonos moacuteviles ademaacutes de la capacidad de adaptar-se a cualquier tamantildeo de pantalla sin que la informacioacuten mostrada se veaalterada

Highcharts a traveacutes de esta biblioteca se logroacute exhibir la informacioacuten deconsumo eleacutectrico en un graacutefico de barras de esta manera es maacutes compren-sible para el usuario

La interfaz web estaacute dividida en dos pantallas principal y de configuracioacuten Laprimera es meramente informativa y es donde se muestra el consumo eleacutectrico alusuario La segunda permite conectar el dispositivo a un red Wi-Fi existente

La pantalla principal fue disentildeada pensando en brindarle al usuario la informa-cioacuten de su consumo eleacutectrico de la manera maacutes simple posible En la mayor partedel aacuterea de la pantalla se muestra un graacutefico de barras que presenta el consumoeleacutectrico de los uacuteltimos tres meses y en la esquina superior izquierda un pequentildeobotoacuten que dirige a la pantalla de configuracioacuten

Al cargar la interfaz en un navegador web se obtiene mediante el meacutetodo GETel archivo kwhcsv que contiene los valores de consumo eleacutectrico que estaacuten al-macenados en el dispositivo Estos son procesados con instrucciones escritas enJavaScript para que la biblioteca Highcharts los utilice y genere el graacutefico de ba-rras En la figura 321 se observa la pantalla principal de la interfaz web

FIGURA 321 Pantalla principal de la interfaz web

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 45: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

36 Capiacutetulo 3 Disentildeo e implementacioacuten

Se disentildeoacute la pantalla de configuracioacuten para que la uacutenica configuracioacuten que puederealizarse sea la conexioacuten del dispositivo a una red Wi-Fi existente a traveacutes de suSSID y contrasentildea Esta pantalla es imprescindible debido a que el dispositivo nodeberiacutea ser manipulado manualmente bajo ninguna circunstancia por el usuarioy se necesitaba una forma de realizar esta configuracioacuten

El componente principal es un formulario para ingresar el SSID y la contrasentildeade la red a la que el usuario desea conectar el dispositivo En la esquina supe-rior izquierda se encuentra un botoacuten para retornar a la pantalla principal y enla esquina superior derecha un botoacuten para enviar por el meacutetodo POST el con-tenido del formulario al dispositivo En la figura 322 se muestra la pantalla deconfiguracioacuten de la interfaz web

FIGURA 322 Pantalla de configuracioacuten de la interfaz web

34 Prototipo comercial

El desarrollo de un prototipo para ser comercializado fue necesario para una pri-mera implementacioacuten del dispositivo en un entorno real de trabajo y la realiza-cioacuten de pruebas a nivel fiacutesico Consta de una carcasa y un PCB (Printed CircuitBoard tarjeta de circuito impreso)

El primer paso fue elegir una carcasa de dimensiones adecuadas para que puedaser montada directamente sobre un medidor de consumo eleacutectrico domiciliarioPara este fin se estudioacute la posibilidad de disentildear una carcasa personalizada perodebido a los altos costos de produccioacuten a nivel de prototipo esta idea fue raacutepida-mente descartada Entonces despueacutes de realizar un anaacutelisis de las dimensionesde los medidores utilizados por COOPELECT se eligioacute una carcasa disponible enel mercado internacional la VG-S43 de la firma Vange La eleccioacuten de esta carcasasobre otras similares fue debido a los zoacutecalos que tiene que se adecuaban per-fectamente para que el fototransistor estuviera descubierto y tuviera vista directacon el LED del medidor eleacutectrico En la figura 323 se puede apreciar la carcasaelegida

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 46: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

34 Prototipo comercial 37

FIGURA 323 Carcasa VG-S43 de la firma Vange5

Antes de empezar con el disentildeo del PCB se realizoacute la eleccioacuten de los componen-tes que seriacutean parte del mismo En el prototipo de pruebas se utilizaron moacutedulosy tarjetas de desarrollo que con el firmware implementado en ellos cumplierontodos los requerimientos planteados Entonces para que el firmware desarrolla-do pudiera ser utilizado exitosamente en el prototipo comercial se utilizaron loscircuitos integrados principales de los moacutedulos y tarjetas de desarrollo tambieacutense descartaron los componentes electroacutenicos que no resultaban necesarios paraeste trabajo Existen dos componentes que se implementaron como moacutedulos elESP-12S que es una variante del ESP-12F componente principal de la NodeMCUy el RA-01 que es un transceptor LoRa basado en el mismo circuito integrado queel PM1280 el SX1278 Ademaacutes el PT333-3C fue sustituido por el PT11-21C quetambieacuten es un fototransistor de similares caracteriacutesticas pero es un SMD (Surface-Mount-Device dispositivo de montaje superficial)

Una vez elegidos los componentes implicados se realizoacute un anaacutelisis del consumode corriente de cada uno de ellos para implementar una fuente de alimentacioacutenadecuada Cabe resaltar que la tensioacuten de alimentacioacuten de todos los componenteses 33 V En la tabla 33 se muestran los valores maacuteximos de consumo de corrientede los componentes estos datos fueron obtenidos de los respectivos datasheets

TABLA 33 Tabla de consumo de corriente eleacutectrica de los compo-nentes del prototipo comercial

Componente Consumo de corriente (mA)

ESP-12S 500 (en modo de transmisioacuten continua)RA-01 93 (en modo transmisor)DS3231 02 (en modo activo)AT24C32 3 (cuando se escribe un dato)LM393 20 (cortocircuitado a tierra)PT11-21C 20

5Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 47: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

38 Capiacutetulo 3 Disentildeo e implementacioacuten

De la tabla 33 se determinoacute que el consumo total de todos los componentes es de6362 mA Al momento de elegir la fuente de alimentacioacuten al consumo total se leantildeadioacute un margen de seguridad del 50 que dio un nuevo valor de 95443 mAPor lo tanto la fuente de alimentacioacuten elegida debioacute ser de 33 V y 1 A

Para reducir la cantidad de componentes de la fuente de alimentacioacuten se escogioacuteun moacutedulo conversor de energiacutea alterna a directa De esta forma el prototipo co-mercial podriacutea conectarse directamente a la misma liacutenea eleacutectrica del medidor Elcomponente elegido fue el moacutedulo HLK-PM03 de la firma Hi-Link que propor-ciona 33 V y 1 A a su salida cuando a la entrada existen 90 V - 240 V alternos Enla figura 324 puede observarse el moacutedulo para la fuente de alimentacioacuten

FIGURA 324 Moacutedulo de alimentacioacuten HLK-PM03 de la firma Hi-Link6

Con ayuda del software KiCAD se realizoacute el dibujo de un diagrama esquemaacuteticodel prototipo comercial que interconecta todos los componentes y brinda infor-macioacuten relacionada a aspectos importantes sobre el funcionamiento y disentildeo delPCB En la figura 325 se muestra el diagrama esquemaacutetico del prototipo comer-cial

Del diagrama anterior se puede notar que se antildeadieron test points para poderprobar la respuesta del sensor de luz mediante instrumentacioacuten especializada Seantildeadieron tambieacuten un conector destinado a la depuracioacuten del coacutedigo almacenadoen el ESP8266 junto con LEDs para monitorear el estado de la fuente y el sensorde luz

Con el diagrama esquemaacutetico finalizado se realizoacute la ERC (Electrical Rule Checkcomprobacioacuten de reglas eleacutectricas) en busca de posibles cortocircuitos conexio-nes ilegales y contactos flotantes entre otras comprobaciones Posteriormente sedibujoacute el circuito impreso donde se tuvieron en consideracioacuten las restriccionesfiacutesicas impuestas por la eleccioacuten de la carcasa Se hizo especial eacutenfasis en la ubi-cacioacuten de los conectores para que quedaran al borde del PCB y pudieran seraccedidos con mayor facilidad El fototransistor quedoacute ubicado en una posicioacutental que coincidiera con el zoacutecalo inferior de la carcasa Otra consideracioacuten de im-portancia fue la distancia entre el transceptor LoRa y el conector coaxial amboscomponentes fueron ubicados muy cerca de tal forma que la pista que los conec-taba tuviera una distancia muy corta Asimismo se dibujoacute la pista lo maacutes anchaposible y se pusieron viacuteas conectadas a tierra para lograr una mejor respuesta alas interferencias electromagneacuteticas

6Imagen tomada de httpsesaliexpresscomitem33004284623htmlspm=a2g0ocart0050483c00xuS0Xoampmp=1

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 48: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

34 Prototipo comercial 39

FIGURA 325 Diagrama esquemaacutetico del prototipo comercial

Las capas top y bottom del PCB pueden apreciarse en las figuras 326 y 327 res-pectivamente Por otro parte en las figuras 328 y 329 se muestran el modelo 3Drenderizado del PCB y una fotografiacutea del PCB montado

La manufactura del PCB fue realizada por el fabricante JLCPCB y los componen-tes fueron adquiridos de la firma LCSC Ambos fueron elegidos por los costos re-ducidos que ofrecen en sus productos ademaacutes de que JLCPCB ofrece el serviciode PCBA (Printed Circuit Board Assembly montaje de PCB) con los componentesque tiene disponibles LCSC

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 49: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

40 Capiacutetulo 3 Disentildeo e implementacioacuten

FIGURA 326 Capa top del PCB

FIGURA 327 Capa bottom del PCB

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 50: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

34 Prototipo comercial 41

FIGURA 328 Modelo 3D del PCB montado del prototipo comer-cial

FIGURA 329 PCB montado del prototipo comercial

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 51: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

43

Capiacutetulo 4

Ensayos y resultados

En este capiacutetulo se presentan los ensayos realizados sobre los prototipos de prue-bas y comercial Ademaacutes se exhiben los resultados obtenidos que validan su co-rrecto funcionamiento Las pruebas fueron realizadas sobre el firmware y hard-ware expuestos en el capiacutetulo 3

41 Pruebas unitarias

Se hicieron pruebas unitarias sobre las bibliotecas desarrolladas para el manejode los circuitos integrados DS3231 AT24C32 y SX1278 Se utilizoacute Ceedling paraejecutar dichas pruebas en combinacioacuten con Gcov para generar los anaacutelisis decobertura correspondientes En la tabla 41 se pueden observar los resultados delas pruebas unitarias y en la tabla 42 se exhibe el anaacutelisis de cobertura

TABLA 41 Tabla de resultados de las pruebas unitarias

Biblioteca Cantidad de tests Exitosos Fallidos

EEPROM 8 8 0RTC 11 11 0LORA 14 14 0

TABLA 42 Tabla de resultados del anaacutelisis de cobertura

Archivo Liacuteneas ejecutadas Funciones ejecutadas

eepromc 5252 66rtcc 5462 1113lorac 172220 2631

42 Pruebas funcionales de firmware

Se probaron los moacutedulos DATA LOGGER LORA COMMUNICATION y WEBSERVER de la capa superior del firmware APP Durante la etapa de desarrollodel firmware estos moacutedulos fueron probados para garantizar su correcto funcio-namiento de acuerdo con la planificacioacuten del trabajo descrita en el capiacutetulo 2 Elbanco de pruebas utilizado consiste en el prototipo de pruebas conectado a unaPC por medio de un cable micro USB Tambieacuten se utilizoacute un medidor eleacutectricomodelo LUMEN 2 MC de la firma Nansen que fue facilitado por COOPELECTEl banco de pruebas se muestra en la figura 41

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 52: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

44 Capiacutetulo 4 Ensayos y resultados

PROTOTIPODE PRUEBAS

MEDIDOR DECONSUMOELEacuteCTRICO

CABLEMICRO USB

PULSOSOacutePTICOS

FIGURA 41 Banco de pruebas para evaluar el funcionamiento delfirmware

Las pruebas consistieron en monitorear a traveacutes de la PC el funcionamiento delos moacutedulos que componen la capa APP Para esto se antildeadieron instrucciones enel coacutedigo fuente de estos moacutedulos que sirvieron para imprimir mensajes por elpuerto serial En la PC se ejecutoacute la utilidad idf-monitor que es una terminal parapuerto serial incluida en el ESP8266_RTOS_SDK A medida que se desarrollaronlos moacutedulos estos fueron probados individualmente verificando su correcto fun-cionamiento

Con todos los moacutedulos funcionando individualmente se realizoacute la prueba deintegracioacuten de la capa APP En la figura 42 se observa una captura de pantalladel idf-monitor cuando el dispositivo inicia su operacioacuten

FIGURA 42 Captura de pantalla de idf-monitor cuando el dispo-sitivo inicia

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 53: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

43 Pruebas de la interfaz web 45

Las funciones que se ejecutan en el sistema operativo del dispositivo tambieacutengeneraron mensajes informativos En la captura de pantalla de la figura 43 seobservan los mensajes que imprimen las tareas de los moacutedulos cuando funcionanormalmente

FIGURA 43 Captura de pantalla de idf-monitor cuando el dispo-sitivo ejecuta sus funciones normales

Con ayuda de todos los mensajes generados ademaacutes de los diagramas de flujopresentados en el capiacutetulo 3 se pudo probar que los moacutedulos de firmware deldispositivo funcionan correctamente

43 Pruebas de la interfaz web

Las pruebas realizadas sobre la interfaz web tuvieron la finalidad de corroborarsu funcionalidad De acuerdo a lo expuesto en el capiacutetulo 3 el dispositivo puedeser configurado mediante el moacutedulo WEB SERVER en dos modos de operacioacutenEntonces se realizaron dos tipos de pruebas distintas una con el dispositivo co-mo punto de acceso y la otra como estacioacuten Para estas pruebas se utilizoacute unaPC un cable micro USB un router Wi-Fi TL-WR940N de la firme TP-Link y unalaptop con el navegador web Chrome instalado En la figura 44 se puede ver undiagrama del banco de pruebas montado

PROTOTIPODE PRUEBAS

CABLEMICRO USB

IEEE 80211IEEE 80211

FIGURA 44 Banco de pruebas para verificar el funcionamientode la interfaz web cuando el dispositivo estaacute en modo punto de

acceso

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 54: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

46 Capiacutetulo 4 Ensayos y resultados

El primer paso fue eliminar todas las configuraciones existentes en el sistema dearchivos del dispositivo lo que provocoacute que al iniciar se ejecutaran las instruccio-nes por defecto del mismo Por defecto el dispositivo se configura como punto deacceso Luego se conectoacute la laptop a la red Wi-Fi del dispositivo En la figura 45se observa la red Wi-Fi generada por el dispositivo en el administrador de redesde la laptop

FIGURA 45 Captura de pantalla de las redes Wi-Fi disponibles enla laptop

El siguiente paso fue ingresar a la direccioacuten de red del dispositivo mediante elnavegador web de la laptop que dio como resultado la transferencia del archivoindexhtml Este archivo HTML solicitoacute automaacuteticamente al dispositivo medianteel meacutetodo GET todos los elementos restantes para generar la interfaz web Paraverificar que las transferencias de estos archivos se hicieran correctamente para ellado del prototipo de pruebas se utilizoacute el idf-monitor y para el lado de la laptopse hizo uso de la herramienta de depuracioacuten del navegador En las figuras 46 y47 se muestran capturas de pantalla de la utilidad de depuracioacuten del navegadory la salida del idf-monitor respectivamente

FIGURA 46 Captura de pantalla de la paacutegina principal de la in-terfaz web con la utilidad de depuracioacuten funcionando

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 55: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

43 Pruebas de la interfaz web 47

FIGURA 47 Captura de pantalla del idf-monitor despueacutes de en-viar los archivos solicitados por el navegador web y el dispositivo

en modo punto de acceso

La siguiente prueba consistioacute en ingresar a la paacutegina de configuracioacuten de la inter-faz web a traveacutes el botoacuten ubicado en la esquina superior izquierda de la paacuteginaprincipal Ahiacute se llenoacute el formulario con los datos de la red Wi-Fi generada por elrouter es decir su SSID y su contrasentildea Se utilizoacute el botoacuten ubicado en la esquinasuperior derecha para enviar estos datos al prototipo de pruebas con el meacutetodoPOST Con esta informacioacuten el moacutedulo WEB SERVER cambio la configuracioacuten almodo estacioacuten y pudo conectarse al router que le proporcionoacute una direccioacuten dered Por uacuteltimo la laptop tambieacuten se conectoacute a la red del router y se utilizoacute el na-vegador web junto con la nueva direccioacuten de red del prototipo de pruebas parasolicitar los archivos de la interfaz web En las figuras 48 y 49 se pueden obser-var una captura de pantalla con los campos del formulario llenados y la salidadel idf-monitor respectivamente

FIGURA 48 Captura de pantalla de la paacutegina de configuracioacuten dela interfaz web con la utilidad de depuracioacuten funcionando

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 56: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

48 Capiacutetulo 4 Ensayos y resultados

FIGURA 49 Captura de pantalla del idf-monitor despueacutes de con-figurar el dispositivo en modo estacioacuten con los datos enviados por

la interfaz web

Al finalizar estas pruebas se pudo evidenciar el correcto funcionamiento de lasdos paacuteginas de la interfaz web Asimismo impliacutecitamente se verificoacute que el moacute-dulo de firmware WEB SERVER respondiacutea las peticiones con los meacutetodos GET yPOST seguacuten lo esperado

44 Pruebas de laboratorio

Estas pruebas tuvieron como objetivo principal utilizar instrumentacioacuten especia-lizada para verificar el buen funcionamiento del conversor oacuteptico-eleacutectrico y lafuente de alimentacioacuten

El propoacutesito de la prueba del conversor oacuteptico-eleacutectrico fue observar la forma deonda que genera para implementar un algoritmo en el firmware que evitaraacute ladeteccioacuten de pulsos falsos consecuencia de las caracteriacutesticas intriacutensecas del LEDdel medidor de consumo eleacutectrico proporcionado por COOPELECT Para llevara cabo esta prueba se utilizoacute un osciloscopio TDS2000C de la firma Tektronix elprototipo comercial y el medidor proporcionado por COOPELECT El banco depruebas puede observarse en el diagrama de la figura 410

PROTOTIPOCOMERCIAL

OSCILOSCOPIODIGITAL

MEDIDOR DECONSUMOELEacuteCTRICO

FIGURA 410 Banco de pruebas para el conversor oacuteptico-eleacutectrico

De la figura 411 se puede observar que la forma de onda producida por el medi-dor tiene elementos que pueden ocasionar que el moacutedulo DATA LOGGER regis-tre erroacuteneamente los pulsos y generar un reporte erroacuteneo del consumo de energiacuteaeleacutectrica Para solucionar esto se implementoacute una funcioacuten similar a la utilizadapara detectar rebotes en los pulsadores en DATA LOGGER Con esto se evitoacute engran medida el error antes mencionado

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 57: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

44 Pruebas de laboratorio 49

FIGURA 411 Salida de la pantalla del osciloscopio

La prueba de la fuente de alimentacioacuten tuvo como propoacutesito excitar este elemen-to con una fuente de tensioacuten alterna que simuloacute el comportamiento de la liacutenea dealimentacioacuten cuando existen cambios en su valor nominal Los elementos utiliza-dos fueron una fuente de tensioacuten alterna variable modelo 1653A de la firma BKprecisioacuten un reoacutestato como carga variable y dos multiacutemetros MUT-39 de la firmaTruper El banco de pruebas utilizado se ilustra en la figura 412

PROTOTIPOCOMERCIAL

AV

AMPERIacuteMETROFUENTE DETENSIOacuteN AC

VARIABLE

VOLTIacuteMETRO

CARGAVARIABLE

FIGURA 412 Banco de pruebas para el conversor oacuteptico-eleacutectrico

El procedimiento consistioacute en establecer el nivel de tensioacuten de entrada en un va-lor determinado y variar la carga conectada a la salida para registrar los datosobtenidos del amperiacutemetro y el voltiacutemetro conectados en serie y paralelo respec-tivamente Los valores de tensioacuten de entrada fueron el valor nominal de la fuentede alimentacioacuten el valor nominal menos el 20 y el valor nominal maacutes el 20 En las tablas 43 44 y 45 se pueden apreciar los resultados obtenidos de estaspruebas

TABLA 43 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 176 VAC

Tensioacuten (V) Corriente (A)

327 02326 04324 06321 08315 1

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 58: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

50 Capiacutetulo 4 Ensayos y resultados

TABLA 44 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 220 VAC

Tensioacuten (V) Corriente (A)

333 02332 0433 06328 08324 1

TABLA 45 Tabla de resultados de la prueba de la fuente de ali-mentacioacuten con 264 VAC

Tensioacuten (V) Corriente (A)

338 02336 04333 06331 08328 1

Para visualizar maacutes faacutecilmente los resultados de estas pruebas y tener una pers-pectiva maacutes clara sobre la variacioacuten de la tensioacuten de salida en funcioacuten de la co-rriente que circula por la carga en la figura 413 se presentan graacuteficamente losresultados de las pruebas anteriores La liacutenea roja representa la prueba con 264VAC la liacutenea verde la prueba con 220 VAC y la liacutenea azul la prueba con 176 VAC

02 04 06 08 1

4

3

2

1

0

Corriente (A)

Tensioacuten

(V)

FIGURA 413 Graacutefico de liacuteneas del comportamiento de la fuentede alimentacioacuten

Entonces seguacuten los valores necesarios para alimentar los componentes del pro-totipo comercial expuestos en la tabla 33 y con ayuda de las pruebas realizadassobre la fuente de alimentacioacuten se concluye que la fuente fue elegida correcta-mente para brindar los niveles de tensioacuten y corriente adecuados cuando el valorde tensioacuten de la liacutenea eleacutectrica variacutee en maacutes o menos 20

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 59: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

45 Pruebas del transceptor LoRa 51

45 Pruebas del transceptor LoRa

Estas pruebas fueron realizadas para determinar los paraacutemetros adecuados deltransceptor LoRa para intercambiar informacioacuten con un gateway de la mismatecnologiacutea que estaacute ubicado en el edificio central de COOPELECT Para esto seutilizaron principalmente el prototipo comercial del dispositivo y un gatewayLoRa basado en la plataforma Arduino y en el moacutedulo LoRa PM1280 Otros ele-mentos utilizados fueron una PC una laptop y cables micro USB El banco deensayos puede observarse en la figura 414

PROTOTIPOCOMERCIAL GATEWAY

LORA 433 MHZ

CABLE MICROUSB

CABLE MICROUSB

FIGURA 414 Captura de pantalla de idf-monitor despueacutes de en-viar los archivos para la interfaz web

El gateway LoRa fue ubicado en la azotea del edificio central de COOPELECTque es el lugar donde deberiacutea instalarse un gateway LoRaWAN finalmente Elprototipo comercial se dispuso en el domicilio del autor maacutes precisamente en elmismo gabinete donde se encuentra instalado el medidor eleacutectrico En la figura415 se muestra la ubicacioacuten del gateway LoRa y el prototipo comercial

FIGURA 415 Captura de pantalla de la ubicacioacuten del gateway Lo-Ra y el prototipo comercial

La prueba realizada consistioacute en el enviacuteo de un paquete con la estructura expuestaen la figura 315 por parte del prototipo comercial Una vez que el gateway lorecibe y procesa devuelve como respuesta un paquete con la misma estructuraque solicita una operacioacuten en el dispositivo Con el serial monitor de Arduino

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 60: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

52 Capiacutetulo 4 Ensayos y resultados

instalado en la laptop se monitoreoacute el gateway Mientras que para monitorear elprototipo comercial se utilizoacute el idf-monitor instalado en la PC

Se probaron distintos tipos de configuraciones para lograr una comunicacioacutenexitosa entre ambos dispositivos Los paraacutemetros que fueron modificados en eltransceptor LoRa fueron el SF (Spreading Factor factor de propagacioacuten) el BW(Band Width ancho de banda) y el CR (Coding Rate tasa de codificacioacuten) En latabla 46 se muestran los valores utilizados de los paraacutemetros antes citados

TABLA 46 Tabla de paraacutemetros de configuracioacuten por software deltransceptor LoRa

Frecuencia (MHz) BW (MHz) SF CR

433 417 12 (4096 chipssymbol) 45

De acuerdo a los paraacutemetros de la tabla 46 se determina lo siguiente

Entre mayor sea el BW mayor tiempo tomaraacute la comunicacioacuten y esto sedebe a que la frecuencia es inversamente proporcional al tiempo Sin em-bargo entre menor sea la frecuencia mayor seraacute el alcance de transmisioacutenesperado

El valor de SF determina el rendimiento en la transmisioacuten de datos es decirque cuanto mayor sea este valor el dispositivo tendraacute menor probabilidadde recibir datos incorrectos y tendraacute mayor radio de cobertura

El CR asegura la fiabilidad de los datos pero cuanto mayor sea este valormaacutes se sobrecarga el tiempo de transmisioacuten

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 61: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

53

Capiacutetulo 5

Conclusiones

51 Conclusiones generales

En este trabajo se logroacute disentildear e implementar el prototipo comercial de un dis-positivo electroacutenico que tiene la capacidad de utilizar la salida de pulsos oacutepticosde medidores de consumo eleacutectrico domiciliario para obtener procesar y trans-mitir informacioacuten sobre la cantidad de kWh consumidos por los abonados de lacompantildeiacutea eleacutectrica COOPELECT

Para este fin se disentildearon distintos moacutedulos de firmware y hardware que per-miten transmitir diariamente la informacioacuten obtenida a un gateway LoRa insta-lado en el edificio central de COOPELECT Asimismo el dispositivo brinda a losabonados de COOPELECT una interfaz graacutefica web para conocer su consumoeleacutectrico de los uacuteltimos tres meses

Durante el desarrollo del trabajo se presentoacute el riesgo de demora al conseguir loscomponentes electroacutenicos requeridos Se aplicoacute el mecanismo de mitigacioacuten des-crito en la planificacioacuten y se destinaron maacutes recursos econoacutemicos de los previstospara poder cumplir con los plazos establecidos El motivo de la demora fue lapandemia global provocada por la enfermedad infecciosa COVID-19 que demo-roacute el arribo de componentes a los proveedores locales y encarecioacute la importacioacutende componentes de proveedores internacionales A pesar de que el motivo de lademora fue insalvable y de fuerza mayor en futuros trabajos se estimaraacuten tiem-pos en la obtencioacuten de componentes menos optimistas para manejar un margende tiempo que no complique otras tareas implicadas

Otro punto importante fue el lanzamiento del decreto supremo que regula el usode redes LPWAN en la frecuencia de 915 MHz [22] que serviraacute como punto departida para que los proveedores locales de componentes electroacutenicos comercia-licen moacutedulos LoRa de la frecuencia adecuada para Bolivia

En la planificacioacuten el prototipo de pruebas constaba de un PCB y placas de desa-rrollo El PCB fue cambiado por una breadboard debido a que disentildear un circuitoimpreso antes de desarrollar el firmware fue un error A medida que el firmwareera desarrollado se fueron cambiando las conexiones fiacutesicas de los moacutedulos dedesarrollo y una PCB haciacutea imposible este proceso

Los requerimientos del trabajo fueron cubiertos de acuerdo con la planificacioacutencon las siguientes modificaciones

Se eliminoacute la implementacioacuten de WPS (Wi-Fi Protect Setup configuracioacuten deWi-Fi segura) para suprimir cualquier tipo de interaccioacuten fiacutesica del abonadocon el dispositivo y evitar posibles manipulaciones incorrectas

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 62: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

54 Capiacutetulo 5 Conclusiones

La cantidad de meses visualizados en la interfaz web fue reducida de seisa tres para exhibir maacutes claramente los graacuteficos en dispositivos de pantallaspequentildeas

La comunicacioacuten de los prototipos con un gateway LoRaWAN no se logroacutepor que COOPELECT no pudo adquirir uno en el mercado local Entoncespara una primera aproximacioacuten con esta tecnologiacutea se realizoacute un intercam-bio de informacioacuten estable con un gateway LoRa basado en Arduino Estopermitioacute conocer la factibilidad teacutecnica y los beneficios de LoRa

Para desarrollar exitosamente el trabajo se aplicaron los conocimientos obtenidosde varias de las materias cursadas en la Carrera de Especializacioacuten en SistemasEmbebidos Estos fueron

Metodologiacutea de trabajo con repositorios locales y en la nube

Programacioacuten orienta a objetos en lenguaje C

Programacioacuten con sistemas operativos en tiempo real

Protocolos de comunicacioacuten I2C y SPI

Pruebas de software para sistemas embebidos

Disentildeo de esquemaacuteticos y circuitos impresos basados en normas internacio-nales

Por otra parte para concluir exitosamente el trabajo tambieacuten fue necesario adqui-rir algunos conocimientos sobre

Disentildeo de paacuteginas web los conocimientos adquiridos fueron uacutetiles paracrear la interfaz web embebida en el dispositivo se obtuvieron conocimien-tos sobre HTML CSS y JavaScript

jQuery se aprendioacute a utilizar la biblioteca jQuery Mobile para suministrarfuncionalidad y un aspecto sobrio a la interfaz web

Highcharts utilizando esta biblioteca se pudo generar de una manera sen-cilla un graacutefico de barras que ayuda al abonado a visualizar el consumo dekWh registrado por el dispositivo

52 Proacuteximos pasos

Como se especifica en esta memoria el trabajo desarrollado es un prototipo co-mercial del dispositivo que debe ser probado durante varios meses en un en-torno real de trabajo para encontrar y solucionar posibles errores de firmwarey hardware que no se presentaron en ninguna de las pruebas realizadas Por lotanto posterior al periodo de pruebas del prototipo comercial el paso a seguir esla fabricacioacuten de una version final del dispositivo siguiendo buenas praacutecticas demanufacturabilidad

Debido a las limitaciones para obtener moacutedulos LoRa de 915 MHz se utilizaronlos moacutedulos disponibles en el mercado local que funcionaban a 433 MHz Unatarea pendiente de este trabajo es implementar moacutedulos con el circuito integradoSX1276 que funciona a 915 MHz en lugar del SX1278 en los prototipos y poste-riormente en el dispositivo final Debido a que ambos circuitos integrados solo

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 63: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

52 Proacuteximos pasos 55

difieren en la frecuencia de transmisioacuten y recepcioacuten la biblioteca desarrollada eneste trabajo podraacute ser utilizada sin ninguacuten tipo de inconveniente

Tambieacuten existen algunas caracteriacutesticas que deben ser incorporadas para mejorarla calidad del dispositivo Estas son

Implementar un mecanismo de actualizacioacuten de firmware remoto OTA (OverThe Air)

Implementar algoritmos de wear leveling para incrementar el tiempo de vidade la memoria EEPROM

Adecuar el dispositivo para que pueda ser utilizado en medidores de aguay gas

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 64: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

57

Bibliografiacutea

[1] Wikipedia Vatio-hora - Wikipedia la enciclopedia libre Visitado el 2020-07-022020 URL httpseswikipediaorgwikiVatio-hora

[2] Wikipedia Electricity meter - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiElectricity_meter

[3] Wikipedia Current clamp - Wikipedia Visitado el 2020-07-011 2020 URLhttpsenwikipediaorgwikiCurrent_clamp

[4] Manisha V Shinde Pradip W Kulkarni laquoCamera click energy meterreading systemraquo En IEEE (2015)

[5] Franccedilois GUILLIERrsquos blog RSS Feed Electricity meter Visitado el2020-07-010 2020 URLwwwguillierorgblog201408electricity-meter

[6] OpenEnergyMonitor Learn | OpenEnergyMonitor Visitado el 2020-07-062020 URL httpslearnopenenergymonitororgelectricity-monitoringpulse-countingintroduction-to-pulse-counting

[7] SyxthSense Wireless Pulse Counter for Metering (PA-FL) Visitado el2020-07-14 2020 URLwwwsyxthsensecomwirelesspa-flwireless-pulse-counter-for-meteringpulse-countingintroduction-to-pulse-counting

[8] ElkoEP Wireless pulse converter - AirTM-100S bull ElkoEP Visitado el2020-07-14 2020 URL httpswwwelkoepcomairtm-100s

[9] Sigfox Sigfox - The Global Communications Service Provider for the Internet ofThings (IoT) Visitado el 2020-07-19 2020 URLhttpswwwsigfoxcomen

[10] Energy - European Commission Smart grids and meters - Energy EuropeanCommission Visitado el 2020-07-14 2020 URLhttpseceuropaeuenergyentopicsmarkets-and-consumerssmart-grids-and-meters

[11] Juan Carlos Rico Noguera Antonio Serna Ruiacutez Francisco AntonioRos Garciacutea Guiacutea Praacutectica de Sensores CREACIONES COPYRIGHT 2010ISBN 9788492779499 URL httpswwwcasadellibrocomlibro-guia-practica-de-sensores97884927794991799582

[12] Elektor Magazine What Is a Microcontroller | Elektor Magazine Visitado el2020-07-27 2020 URLhttpswwwelektormagazinecomnewswhat-is-a-microcontroller

[13] BISinfotech Top 10 Microcontrollers (MCU) Manufacturers for 2020 Visitadoel 2020-07-19 2020 URL httpswwwbisinfotechcomtop-10-microcontrollers-mcu-manufacturers-2020

[14] CISCO iquestQueacute es la tecnologiacutea wifi Definicioacuten y tipos - Cisco Visitado el2020-07-18 2017 URL httpswwwciscocomces_mxproductswirelesswhat-is-wifihtmlAcirco

[15] Departamento de Informaacutetica y Sistemas - Universidad de Murcia Elmodelo OSI Visitado el 2020-07-28 2015 URL

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea
Page 65: Monitor para medidores de consumo de energía eléctricalaboratorios.fi.uba.ar/lse/tesis/LSE-FIUBA-Trabajo-Final-CESE-Maurici… · A Gonzalo Sanchez, director de este trabajo, por

58 Bibliografiacutea

httpdisumes~lopezquesadadocumentosIES_1213LMSGIcursoxhtmlxhtml22indexhtml

[16] Semtech Semtech LoRa Technology Overview | Semtech Visitado el2020-07-17 2018 URL httpswwwsemtechcomlora

[17] LoRa Alliancereg About LoRaWANreg | LoRa Alliancereg Visitado el2020-07-16 2019 URL httpslora-allianceorgabout-lorawan

[18] Explain that Stuff How do supercapacitors work - Explain that Stuff Visitadoel 2020-07-28 2011 URLhttpswwwexplainthatstuffcomhow-supercapacitors-workhtml

[19] Thomas L Floyd Fundamentos de Sistemas Digitales - 6 Edicion PrenticeHall 2000 ISBN 8489660212 URLhttpswwwamazoncom-esThomas-L-Floyddp8489660212

[20] Wikipedia Wi-Fi - Wikipedia Visitado el 2020-07-16 2020 URLhttpsenwikipediaorgwikiWi-Fi

[21] Autoridad de Regulacioacuten y Fiscalizacioacuten de Telecomunicaciones yTransportes ATT Plan Nacional de Frecuencias Visitado el 2020-07-28 2012URLhttpsattgobbositesdefaultfilesarchivospdfPlan20Nacional20de20Frecuencias20-200820-201120-202012pdf

[22] Bolivia emprende Decretro supremo 4272 Visitado el 2020-07-31 2020 URLhttpsboliviaemprendecomwp-contentuploads202006DS-Programa-Nacional-de-ReactivaciC3B3n-23-06-20pdf

[23] FreeRTOS FreeRTOS - Market leading RTOS (Real Time Operating System) forembedded systems with Internet of Things extensions Visitado el 2020-07-282019 URL httpswwwfreertosorg

[24] Espressif Systems Build and Flash with Eclipse IDE - ESP8266 RTOS SDKProgramming Guide documentation URLhttpsdocsespressifcomprojectsesp8266-rtos-sdkenlatestget-startedeclipse-setuphtml

[25] W3 Schools HTTP Methods GET vs POST Visitado el 2020-07-19 2020URL httpswwww3schoolscomtagsref_httpmethodsasp

[26] Microchip AT24C3264 Visitado el 2020-07-21 2003 URLhttpsww1microchipcomdownloadsenDeviceDocdoc0336pdf

[27] Maxim Itegrated DS3231 Visitado el 2020-07-21 2015 URLhttpsdatasheetsmaximintegratedcomendsDS3231pdf

[28] Github sandeepmistryarduino-LoRa An Arduino library for sending andreceiving data using LoRa radios Visitado el 2020-07-27 2020 URLhttpsgithubcomsandeepmistryarduino-LoRa

[29] Semtech SX1278 Visitado el 2020-07-22 2020 URLhttpssemtechmysalesforcecomsfcpE0000000JelGa2R0000001Rc1QnUuV9TviODKUgt_rpBlPzEZA_PNK7Rpi8HA5Sbo

  • Resumen
  • Introduccioacuten general
    • Medicioacuten del consumo eleacutectrico domiciliario
    • Medicioacuten inteligente
    • Soluciones disponibles en el mercado
    • Motivacioacuten
    • Objetivos y alcance
      • Introduccioacuten especiacutefica
        • Requerimientos
          • Requerimientos funcionales
          • Requerimientos de documentacioacuten y produccioacuten
            • Esquema general del sistema
              • Conversor oacuteptico-eleacutectrico
              • Microcontrolador
              • Transceptor Wi-Fi
              • Transceptor LoRa
              • Reloj en tiempo real
              • Memoria no volaacutetil
                • Planificacioacuten
                  • Disentildeo e implementacioacuten
                    • Prototipo de pruebas
                      • Microcontrolador + Wi-Fi
                      • Transceptor LoRa
                      • RTC + EEPROM
                      • Conversor oacuteptico-eleacutectrico
                        • Disentildeo de firmware
                          • DATA LOGGER
                          • DATA COMMUNICATION
                          • WEB SERVER
                            • Interfaz web
                            • Prototipo comercial
                              • Ensayos y resultados
                                • Pruebas unitarias
                                • Pruebas funcionales de firmware
                                • Pruebas de la interfaz web
                                • Pruebas de laboratorio
                                • Pruebas del transceptor LoRa
                                  • Conclusiones
                                    • Conclusiones generales
                                    • Proacuteximos pasos
                                      • Bibliografiacutea