monitor para medidores de consumo de energía...
TRANSCRIPT
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-