sistema de monitoreo inalambrico de consumo electrico con microcontrolador
TRANSCRIPT
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
1/126
INS
CD. G
ITUTO T
Siste
Consum
QUE P
AESTR
JUAN
M.C.
ZMN, J
ECNOL
a De Mo
o Elctric
RA OBT
EN ING
PR
CARLO
DIRECT
AVIER
LISCO,
GICO D
TESIS
EMA:
nitoreo In
o Con Mi
ENER E
ENIERA
ESENTA
CHAVE
OR DE T
UTIERR
MXICO
CIUDA
almbric
rocontro
GRAD
ELECTR
:
AMEZ
ESIS:
Z TORR
. DICIEM
GUZM
De
lador
DE:
NICA
UA
ES
BRE DE
N
013
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
2/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
3/126
I. INTRODUCCION
2
AGRADECIMIENTOS
Primero que nada, quiero agradecer a dios por permitirme llegar a estas instancias,
por guiarme en mi camino y darme salud. Tambin a mi quiero agradecer
profundamente a mis padres y a mi esposa por su apoyo brindado
incondicionalmente, por su compresin y paciencia.
De igual manera, quiero agradecer al Consejo Nacional de Ciencia y
Tecnologa por haberme otorgado la beca durante la totalidad de este posgrado,
siendo esta mi soporte econmico que mantuvo el enfoque en mis estudios.
A mi Director de Tesis el M.C. Javier Gutirrez Torres por su disposicin
constante e inters para contribuir con el desarrollo de todo el trabajo de tesis.
Tambin a todos mis compaeros de la generacin por sus comentarios ycrticas constructivas las cuales me ayudaron a mejorar este prototipo para la
medicin y ahorro de energa.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
4/126
I. INTRODUCCION
3
RESUMEN
La finalidad de esta tesis es construir un sistema de monitoreo inalmbrico de
consumo elctrico utilizando microcontroladores para medir y generar reportes enbase al consumo energtico realizado por cualquier enser domstico o industrial que
se encuentre conectado a cualquier lnea monofsica o inclusive trifsica.
Con el fin de realizar mediciones de manera precisa este sistema est provisto
con un sensor de efecto hall, que ha resultado ser la manera ms eficiente y barata
de medir la corriente que fluye a travs de un conductor. Por otro lado, al ser un
dispositivo lineal y generar una salida en voltaje, se viene a convertir en un aliado
perfecto de cualquier ADC o microcontrolador.
Hoy en da existe una amplia gama de microcontroladores con caractersticas
similares, pero el diseo se enfoc a utilizar dispositivos econmicos, accesibles y de
software libre, que nos permitieran hacer uso de los protocolos bsicos de
comunicacin (SPI, I2C) y convertidores analgico/digital entre los cuales pudimos
encontrar los microcontroladores PIC 16F877A de Microchip y Arduino UNO R3 de
Atmel.
Los sistemas inalmbricos han sido objeto de estudio en la ltima dcada por
los beneficios y comodidades que brinda. El prototipo se doto de una red inalmbricasemidplex utilizando Xbees Serie 2 para la transmisin de datos mediante el
protocolo serial, mismo que se us para el manejo de las pantallas graficas del
sistema.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
5/126
I. INTRODUCCION
4
ABSTRACT
The purpose of this thesis is build a wireless monitoring system power consumption
using microcontrollers to measure and generate reports based on energyconsumption made by some domestic or industrial enser that is connected to any
single-phase or three-phase inclusive.
In order to make precise measurements of the system is provided with a hall effect
sensor, that has proven to be the most efficient and inexpensive way to measure the
current flowing through a conductor. On the other hand, as a linear device and
generate an output voltage has been converted to a perfect ally any ADC or
microcontroller.Today there is a wide range of microcontrollers with similar features, but the design is
focused on devices using affordable, accessible and free software that allow us to
make use of basic communication protocols (SPI, I2C) and analog / digital converters
among which we find 16F877A PIC microcontrollers from Microchip and Atmel
Arduino UNO R3.
Wireless systems have been studied in the last decade for the benefits and amenities
offered. The prototype was equipped with a wireless half-duplex using Xbee's Series
2 for data transmission through the serial protocol, same as used for handling system
graphic displays.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
6/126
I. INTRODUCCION
5
ndice General
CAPITULO. I INTRODUCCION 11
1.2 Definicin Del Problema. 12
1.3 Objetivo General 13
1.4 Objetivos Especficos 13
1.5 Metas. 13
1.6 Antecedentes. 141.6.1 Kill a Watt EZ. 141.6.2 Google PowerMeter 161.6.3 Nucleus de General Electric 17
CAPITULO II. MARCO TEORICO 21
2.1 Introduccin a Zigbee 212.1.1 Frecuencias de trabajo y rango de velocidades 232.1.2 Tipos de dispositivos 242.1.3 Topologas de red 25
2.2 Mdulos Xbee 272.2.1 Eleccin de la antena Xbee 28
2.3 Qu es Arduino? 29
2.3.1 Por Qu Elegir Arduino? 31
2.3.2 El Modelo Del Microcontrolador 332.3.3 Memorias Del Microcontrolador 342.3.4 Protocolos De Comunicacin I2C/TWI Y SPI 352.3.5 El Chip ATmega16U2 402.3.6 Las Entradas y Salidas Digitales. 422.3.7 Las entradas analgicas 422.3.8 Otros Usos De Los Pines-Hembra De La Placa 452.3.9 Arduino Mega 2560 48
2.4 Qu Es Un IDE? 492.4.1 El Serial Monitor y Otras Terminales Serie. 49
2.5 Xbee Shields 522.5.1 Arduino Wireless SD Shield 532.5.2 Caractersticas de las tarjetas SD 55
2.6 LCD grfico de 128x64 58
2.7 Sensor De Corriente. Descripcin 602.7.1 Caractersticas Del Sensor De Corriente ACS712 61
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
7/126
I. INTRODUCCION
6
3.1 Diseo de la lgica de programacin del PIC16F877A 64
3.2 Hardware. Diseo del Transmisor. 67
3.3 Programacin. Transmisor con PIC16F877A 68
3.4 Transmisor. Descripcin Del Programa Fuente. 68
3.5 Configuracin De Puertos Seriales Virtuales 82
3.6 Simulacin del Transmisor 863.6.1 Generando Los Primeros Grficos. 873.6.2 Iniciando La Transmisin De Datos. 883.6.3 Conexin Establecida. 893.6.4 Transmitiendo Datos. 90
3.7 Diseo de la lgica de programacin del ARDUINO MEGA. 913.7.1 Hardware. Diseo del receptor 933.7.2 Programacin. Receptor con Arduino MEGA 943.7.3 Receptor. Descripcin Del Programa Fuente. 94
CAPITULO IV. RESULTADOS 105
4.1 Presentacin de los primeros grficos. 105
4.2 Transmisin de los primeros datos 106
4.3 Gestin De Datos. Receptor 1084.3.1 Inicializacin de memoria microSD 1084.3.2 Recepcin de datos. 1094.3.3 Generacin de graficas en Excel. 110
CAPTULO V. CONCLUSIONES 113
CAPTULO VI. REFERENCIAS BIBLIOGRFICAS 115
ANEXO A 117
ANEXO B 119
ANEXO C 121
ANEXO D 121
ANEXO E 122
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
8/126
I. INTRODUCCION
7
ndice de figurasFIG. PAG.
1.1 Kill a Watt EZ 151.2 Uso de energa en el hogar 17
1.3 Sistema Nucleus de GE 181.4 Administrador del hogar Nucleus 181.5 Registro de consumo de energa 192.1 Tipos de dispositivos Zigbee / IEEE 802.15.4 242.2 Topologas de red. 262.3 Ventajas de enrutado de topologa Mesh. 262.4 Conexiones mnimas para utilizar Xbee. 272.5 Microcontrolador ATmega328P 33
2.6 Estructura logia bsica I2C 362.7 Estructura bsica I2C 372.8 Estructura bsica SPI 392.9 ATmega16U2 402.10 Esquema Hardware de la placa Arduino Uno 472.11 Puertos seriales del Arduino MEGA 482.12 Monitor Serial 502.13 Arduino Wireless SD Shield 542.14 Memoria MicroSD 562.15 Configuracin de las memorias SD y MicroSD 572.16 Diagrama a bloques del LCD 128X64 582.17 LCD grafico 128X64 582.18 Configuracin para Alimentar el GLCD 128X64 602.19 Diagrama de bloques funcional del sensor de corriente ACS712. 623.1 Diagrama de flujo de la etapa de transmisin 663.2 Diagrama de prueba del transmisor. 673.3 Logo utilizado para crear imagen en transmisor 693.4 Programa gestor de imgenes LCD Assistant 703.5 Extensin, mapa de bits monocromatico 70
3.6 Imagen monocromtica. 713.7 Configuracin de LCD Assistant. 713.8 Virtual Serial Port Driver 823.9 Seleccionando puertos seriales. 833.10 Puertos seriales instalados virtualmente. 833.11 Terminal V1.9b 84
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
9/126
I. INTRODUCCION
8
3.12 COM 1 configurado e instalado 843.13 Configuracin de ISIS Proteus 853.14 ISIS Proteus configurado. 853.15 Circuito utilizado en ISIS Proteus 86
3.16 Primer Grafico Generado Por Microcontrolador 873.17 Pantalla en Modo Stand by 883.18 Subrutina de conexin 883.19 Introduciendo respuesta de receptor 893.20 Transmisor emitiendo datos. 903.21 Logica de programacin del receptor 923.22 Diagrama del receptor 934.1 Generacin del primer grafico 1054.2 Pantalla de espera 1064.3 Subrutina de conexin y enlace. 1064.4 Transmisin de datos. 1074.5 Subrutina de reconexin. 1084.6 Inicializacin correcta, tarjeta presente. 1094.7 Inicializacin incorrecta, tarjeta ausente o conexin errnea. 1094.8 Recepcin de datos en monitor serial 1104.9 Datos en Excel 1114.10 Grafica de datos obtenidos 111
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
10/126
I. INTRODUCCION
9
ndice de Tablas
TABLA PAG.
2.1 Cuadro comparativo entre WiFi, Bluetooth y Zigbee. 222.2 Bandas de frecuencia en Zigbee 232.3 Comparativa de prestaciones entre Xbee. 282.4 Comparativa de prestaciones entre Xbee. 292.5 Caractersticas tcnicas de Arduino. 442.6 Descripcin de Pines 592.7 Comparativa entre diferentes sensores de corriente. 60
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
11/126
I. INTRODUCCION
10
CAPTULO I
INTRODUCCIN
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
12/126
I. INTRODUCCION
11
CAPITULO. I INTRODUCCION
En este primer captulo se pretende describir de manera concreta las razones que
motivaron la realizacin de este proyecto as como las metas, alcances y objetivos
planteados, dando una resea de los antecedentes que dieron la pauta para su
desarrollo.
En el segundo captulo de la presente investigacin se plasman los
fundamentos tericos y tcnicos necesarios que servirn como soporte para poder
implementar este proyecto de innovacin.
En el tercer captulo se muestra el desarrollo del proyecto de manera detallada
y sencilla que permitir de manera simple al lector interpretar el proceso de
elaboracin del mismo.
En el cuarto captulo se mencionan los resultados obtenidos en base a la
puesta en funcionamiento y comportamiento del proyecto.
En el quinto captulo se plasman las conclusiones en base a los resultados
obtenidos y la experimentacin realizada.
Por ltimo, en el sexto captulo se menciona las referencias bibliogrficas
utilizadas como fundamento terico y prctico, que fueron fundamentales para la
elaboracin del este proyecto de tesis.Actualmente las tendencias en ahorro de energa han mostrado ser la forma ms
efectiva de constituir un ahorro significativo tanto en el hogar como en la industria,
con el fin de hacer ms eficiente un proceso industrial o simplemente monitorear el
desempeo de un enser domstico, que quizs posteriormente pueda ser sustituido
y/o nos ayude a saber cunto nos cuesta mantener cierto electrodomstico.
Es por eso que en el mercado han surgido diferentes medidores de corriente
para poder monitorear el consumo de energa en tiempo real, muchos de ellos han
innovado poco o nada en la forma de obtener o inclusive manejar la informacin que
generan. Por otro lado, al ser mdulos que se encuentran localmente realizando una
medicin, muchas de las veces es poco factible adquirir este tipo de informacin,
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
13/126
I. INTRODUCCION
12
pues el lugar donde se va a realizar el monitoreo o censado es poco accesible
fsicamente hacindose complicado llevar un control estadstico de las mediciones.
De ah surge la necesidad de construir un sistema de monitoreo de consumo
elctrico, el cual nos pueda brindar una adquisicin continua de datosinalmbricamente que nos permita visualizar la informacin de manera remota y
local, que sea capaz de generar un historial del consumo en cualquier momento
determinado por el usuario. De esta manera, tratamos de incursionar no solo en el
rea de domtica sino tambin en la industrial.
Las ventajas de disear y construir un sistema de este tipo son muchas y
variadas, pues nos ayudara a mantener un control sobre los consumos energticos
que puede ser desde un enser domestico hasta un rea industrial completa. Adems,cumplir con el objetivo de generar un historial, que el usuario podr utilizar para
medir el desempeo elctrico a lo largo del tiempo.
Adems, ser un factor importante a tomar en cuenta el poder utilizar
elementos electrnicos y microcontroladores comunes para su realizacin, pues
tambin uno de los alcances que tiene el proyecto es ahorrar en la implementacin y
desarrollo del mismo para poderlo hacer ms atractivo econmicamente al cliente
con respecto a los sistemas contemporneos.
1.2 Definicin Del Problema.
Actualmente en Mxico, los sistemas de monitoreo de consumo elctrico solo han
incursionado por medio de la compaa paraestatal de la Comisin Federal de
Electricidad (CFE), implementando medidores elctricos bsicos, mostrando poco
inters por mostrar informacin integral sobre costo/consumo como lo han hecho
algunos pases en desarrollo y emergentes.
Es por eso, que contar con un sistema que supervise el consumo elctrico es
fundamental para el buen funcionamiento de empresas, edificios, universidades,
hospitales o cualquier institucin que cuente reas crticas.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
14/126
I. INTRODUCCION
13
1.3 Objetivo General
Disear e implementar un sistema de monitoreo inalmbrico de consumo elctrico
empleando microcontroladores, que nos permita obtener datos de gasto elctricodiariamente de cualquier dispositivo elctrico.
1.4 Objetivos Especficos
Investigar el desempeo del sistema de monitoreo inalmbrico de consumo elctrico
usando un microcontrolador, con respecto a los existentes. As como los siguientes
puntos.
Proponer una metodologa de diseo de sistemas inalmbricos para el
monitoreo de consumo.
Disear e Implementar la etapa de acondicionamiento utilizando un sensor
de efecto hall de tipo semiconductor.
Disear y Simular usando el isis de proteus un buffer digital de datos para la
etapa de sensado de corriente.
Disear e Implementar la etapa de transmisin y recepcin para realizar lacomunicacin inalmbrica.
Disear e Implementar un datalogger para almacenar los datos obtenidos
peridicamente.
Disear e Implementar un sistema de medicin local y remota del sistema
utilizando pantallas tipo LCD.
1.5 Metas.
Se pretende que para al trmino del periodo Enero Junio del 2013 se cuente
con:
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
15/126
I. INTRODUCCION
14
Una red tipo mesh, para poder realizar la comunicacin inalmbrica.
Un datalogger que nos permita guardar toda la informacin adquirida.
Un sistema remoto y local de monitoreo.
Un transmisor bajo la plataforma PIC y un receptor bajo la plataforma de
Arduino.
Un reporte donde se plasme todos los resultados obtenidos a lo largo del
desarrollo de este proyecto.
1.6 Antecedentes.
Unmonitor de energa para el hogares un tipo devatihormetroocontador
elctricoque proporciona informacin en tiempo real del consumo elctrico demanera comprensiblepara cualquier usuario sin necesidad de conocimientos
tcnicos. Estos dispositivos tambin pueden mostrar al usuario el coste de la energa
consumida y estimaciones de las emisiones de gases de efecto invernadero. Algunos
estudios muestran unareduccin del consumo de energa en el hogarde 4-15%
gracias al uso de monitores de energa.
1.6.1 Kill a Watt EZ.
En la figura 1.1 podemos observar el Kill a Watt EZ, el cual es un medidor de energa
con el que fcilmente usted podr conectar cualquier aparato y as calcular cunto
dinero le cuesta el tenerlo encendido. Adems informa cunto dinero gasta por da,
mes y ao, los watts que usa, as como los kWh, de tal forma que se puede
identificar si conviene apagarlo ms, conservarlo o cambiarlo.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
16/126
I. INTRODUCCION
15
Kill a Watt EZ
Este modelo cuenta con Memoria para Grabar los registros de cada aparato y
se le pueden capturar los costos del KwH para que d automticamente los costos
por hora, Da, Mes o Ao de ese dispositivo.
Son miles de preguntas ante el gasto de energa de sus electrodomsticos, y
la verdad es que todos desafortunadamente tenemos que pagar una cuenta cada
mes de servicios. Y la economa actualmente no est para altos gastos. Si de verdad
desea bajar significativamente su cuenta de servicios y saber cunto gasta cada
aparato en su hogar, esta es la nica forma de hacerlo y muy fcil.
As de simple, se puede ahorrar mucho dinero al mes y al ao sabiendo que
se puede apagar los electrodomsticos en la noche o analizar que aparatos se tienen
que cambiar. Tambin se puede ver la calidad de energa que se recibe, ya que
muestra voltaje, Lnea, Frecuencia, y factor de potencia.
Caractersticas:
Pantalla LCD.
Muestra Voltios, Amperes, watts, VA.
Timer: para ver cunto tiempo lleva conectado el aparato (entre ms tiempo lo
dejemos mejor lectura hace).
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
17/126
I. INTRODUCCION
16
Memoria para Guardar informacin de Diferentes aparatos.
Da informacin automtica de costo Diario, Mensual y Anual para cada
aparato.
El Kill a Watt EZ cuenta con memoria para guardar la informacin de
diferentes aparatos. Y usted puede capturar el costo del kWh que viene en el recibo
de energa y automticamente en la pantalla muestra cuento gasta en dinero ese
aparato al da, mes y ao. Facilita la operacin para hacer mediciones ms rpidas y
as poder encontrar el ahorro que se necesita hacer.
El Kill a Watt Normalbrinda la informacin de kWh consumidos, as como Voltios,
Amperes, Watts, VA. Pero para sacar el costo en dinero que cada aparato gasta hayque hacerlo de manera manual con una calculadora.
1.6.2 Google PowerMeter
Google se ha propuesto ayudarnos a reducir el consumo elctrico en nuestras casas,
a travs de un ambicioso proyecto llamado: Google Powermeter.
Bajo el lema de Lord Kelvin: "lo que no se puede medir, no se puede mejorar",
a creado un software que nos permitir a travs de un gadget para el
iGoogle conocer donde consumimos ms energa en nuestros hogares y as poder
hacer esfuerzos focalizados para reducir estos consumos, por nuestro beneficio
propio y el del planeta.
Un verdadero reto tecnolgico y de coordinacin entre las principales
compaas elctricas de Norte Amrica (USA y Canad), en primer lugar, para
finalmente extenderse a todo el mundo.
Google PowerMeter muestra a los usuarios su consumo de electricidad en tiempocasi real. Creen que PowerMeter ofrecer ms informacin til y prctica que las
complicadas facturas mensuales de papel que proporcionan poca informacin sobre
el consumo o la forma de ahorrar energa.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
18/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
19/126
I. INTRODUCCION
18
casi real, puede realizar elecciones con mayor informacin y tomar medidas ms
inteligentes para recibir una factura de electricidad con valores ms bajos. En la
figura 1.3 podemos ver como GE distribuye los sensores en el hogar.
Figura 1.2 Sistema Nucleus GE
En el pasado, las compaas de servicios simplemente lean un medidor de
electricidad una vez al mes y luego cobraban el cargo al propietario por la energa
consumida. Esto significaba que los propietarios no tenan manera de saber cunta
energa utilizaban hasta que no reciban la factura. Esos das han terminado. La
figura 1.4 se puede observar ms claramente como el administrador Nucleusgestiona y mide inalmbricamente el consumo elctrico de cada enser domestico
Figura 1.3 Administrador del hogar Nucleus
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
20/126
I. INTRODUCCION
19
Con slo saber cunta energa consume, puede optar por hacer pequeos
cambios en su estilo vida que podran reducir los costos de energa. Con el
administrador Nucleus como se puede ver en la figura 1.5, usted cuenta con un
tablero centralizado para monitorear el consumo de energa del hogar. Registre elconsumo de energa en kW (tiempo casi real), kWh (a largo plazo) y haga un clculo
de los dlares gastados, luego use estos datos para ver las tendencias a lo largo de
los das, semanas y meses, hasta 3 aos.
Figura 1.4 Registro de consumo de energa
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
21/126
II. MARCO TEORICO
20
CAPTULO II
MARCO TERICO
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
22/126
II. MARCO TEORICO
21
CAPITULO II. MARCO TEORICO
El presente capitulo menciona los fundamentos tericos y tcnicos bsicos que
marcaron la pauta para poder estructurar as como desarrollar un sistema de
monitoreo inalmbrico de consumo elctrico.
Inicialmente, se hace referencia a los microcontroladores utilizados para
estructurar tanto el transmisor y receptor, que si bien no se utilizaron los mismos
microcontroladores para disear ambas etapas, si se usaron microsistemas similares
con gran versatilidad y prestaciones.
Por otro lado, tambin se mencionaran algunas caractersticas de los
diferentes sensores de tipo hall que existen en el mercado, as como tambin con un
pequeo anlisis que se utiliz para seleccionar el adecuado para el sistema que sedesarroll.
2.1 Introduccin a Zigbee
El nombre de Zigbee deriva de los patrones errticos comunicativos que tienen las
abejas (bees) entre las flores durante la recogida de polen. Los zumbidos de las
abejas evocan en redes inalmbricas invisibles.
Zigbee surge de la necesidad de desarrollar una tecnologa inalmbrica fiable,pero de no muy alta transferencia de datos. De esta forma, en 1998, un conjunto de
empresas se asociaron para desarrollar un estndar de comunicaciones que
complementara a Wi-fi y Bluetooth. Fue terminado y publicado por el IEEE en Mayo
de 2003.
Desde el punto de vista del Hardware, podemos decir que Zigbee ha sido
cuidadosamente optimizado para el bajo coste a gran escala. Tiene pocas partes
analgicas y utiliza circuitos digitales siempre que sea posible.
Desde el punto de vista tcnico, Zigbee es un estndar que define un conjunto
de protocolos de comunicacin de baja velocidad de datos de corto alcance de redes
inalmbricas. Zigbee est basado en dispositivos inalmbricos que operan a 868
MHz, 915 MHz y 2.4 GHz.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
23/126
II. MARCO TEORICO
22
La tcnica de modulacin es Direct Sequence Spread Spectrum (DSSS), que tiene
un mximo rango de velocidad de unos 250 kbit /s.
Por lo tanto, a modo resumen podemos catalogar a Zigbee como un protocolo:
Basado en el estndar 802.15.4. Con aplicaciones WPAN (Wireless Personal Area Network)
Con gran soporte desde la industria: Honeywell, Mitsubishi Electric, Motorola,
Philips, Samsung, etc.
Bajo coste.
Bajo consumo.
Fcil Instalacin y barata.
Redes flexibles y extensibles.En la tabla 2.1 podemos ver un cuadro de comparacin entre WiFi, Bluetooth y
Zigbee:
Tabla 2.1 Cuadro comparativo entre WiFi, Bluetooth y Zigbee.
Tecnologa
Wi-fi Bluetooth ZigbeeVelocidad 50< Mbps 1 Mbps
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
24/126
II. MARCO TEORICO
23
podra ser una red de sensores inalmbricos que se conecten sin cables a una
estacin de control.
2.1.1 Frecuencias de trabajo y rango de velocidades
En el estndar Zigbee se definen tres bandas de frecuencia distintas:
868868.6 MHz (banda de 868 MHz)
902- 928 MHz (banda de 915 MHz)
24002483.5 MHz (banda de 2.4 GHz)
La banda de 2.4 GHz es usada en el mundo entero mientras que las de 868 MHz y
915 MHz se usan en Europa y Amrica del Norte respectivamente. Esto otorga a los
diseadores libertad para tomar sus propias decisiones sobre qu bandas de
frecuencia son mejores para sus aplicaciones.
En general, podemos decir que las aplicaciones de 2.4 GHz permiten un
ancho de banda ms grande y ms canales. Sin embargo, la coexistencia con otros
sistemas que funcionan con 2.4 GHz como WLAN y Bluetooth debe ser tenida en
cuenta. El tamao de las antenas en sistemas de 2.4 GHz es tambin menor
respecto a las otras dos bandas de frecuencias. En la tabla 2.2 podemos observarlas diferentes bandas de frecuencia con la cual trabaja Zigbee.
Tabla 2.2 Bandas de frecuencia en ZigbeeFrequency Number
ofChannels
Modulation ChipRate
(Kchip/s)
BitRate
(Kb/s)
SymbolRate
(Ksymbol/s
SpreadingMethod
868-868.6 1 BPSK 300 20 20 Binary DSSS902-928 10 BPSK 600 40 40 Binary PSSS
Optional868-868.6 1 ASK 400 250 12.5 20-Bit PSSS
902-928 10 ASK 1600 250 50 5-Bit PSSS
Optional
868-868.6 1 O-QPSK 400 100 25 16-arrayortogonal
902-928 10 O-QPSK 1000 250 62.5 16-arrayortogonal
2400-2483.5
16 O-QPSK 2000 250 62.5 16-arrayortogonal
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
25/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
26/126
II. MARCO TEORICO
25
muy econmico. Adems, su batera puede durar aos debido a que se pasa
dormido la mayor parte del tiempo.
2.1.3 Topologas de red
Zigbee permite tres topologas de red:
Pair:La forma ms sencilla de la red es con dos nodos. Uno de ellos debe ser
un coordinador. El otro puede ser bien un router o bien un end device.
Star:En esta topologa el coordinador es el centro de la red y es el que se
conecta en crculo con los dems dispositivos (End devices). Por lo tanto,todos los mensajes deben pasar por el coordinador. Dos end devices no
pueden comunicarse entre s directamente.
Mesh:La configuracin cuenta con nodos router y con un nodo coordinador.
Se trata de una topologa no jerrquica en el sentido de que cualquier
dispositivo puede interactuar con cualquier otro.
Este tipo de topologa permite que, si en un momento un nodo o camino fallan
en la comunicacin, sta pueda seguir rehaciendo los caminos. La gestin de
los caminos es tarea del coordinador.
Cluster Tree: Es una variacin de la topologa malla, por lo que no la
consideramos realmente como una cuarta topologa. En este diseo, los
routers forman una columna vertebral con los dispositivos finales, que estn
agrupados en torno a los routers.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
27/126
II. MARCO TEORICO
26
Figura 2.2 Topologas de red.
De todas las topologas antes analizadas y las cuales pudimos observar
claramente en la figura 2.2, la ms ventajosa y caracterstica del protocolo Zigbee es
la Mesh. El poder hacer routing dinmico permite a este tipo de topologa ganar
sobretodo en fiabilidad en las comunicaciones.
Es adecuado destacar la importancia de actuar como un equipo. En
baloncesto los jugadores necesitan coordinarse entre ellos. En Zigbee pasa un poco
lo mismo. Los dispositivos pueden conectarse de muchas formas diferentes para dar
fuerza a la red, como podemos ver en la figura 2.3.
Figura 2.3 Ventajas de enrutado de topologa Mesh.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
28/126
II. MARCO TEORICO
27
2.2 Mdulos Xbee
Los mdulos Xbee son fabricados por la empresa Digi, proporcionan conectividad
inalmbrica con otro dispositivo de la misma serie por un precio relativamente
econmico comparado con el de otros fabricantes.
Digi ofrece dos series diferentes, la serie 1 y la serie 2, tambin conocida
como Znet 2.5, los mdulos de la Serie 1 y la Serie 2 tienen el mismo pin-out, sin
embargo no son compatibles entre s ya que utilizan distintos chipset y trabajan con
protocolos diferentes.
La serie 1 est basada en el chipset de Freescale y est pensado para ser
utilizado en redes punto a punto y punto a multipunto. Los mdulos de la Serie 2
estn basados en el chipset de Ember, y estn diseados para ser utilizados enaplicaciones que requieren repetidores o una red mesh. Ambos mdulos pueden ser
utilizados en los modos AT y API.
Con estos mdulos se pueden disear aplicaciones de comunicacin
inalmbrica de bajo consumo energtico, como las requeridas por el proyecto en el
que nos embarcamos.
La figura 2.4 ilustra cmo fluyen los bits de datos a travs del mdulo Xbee.
Figura 2.4 Conexiones mnimas para utilizar un xbee.
Los datos entran en el mdulo UART a travs de la patilla DIN (pin 3) como una
seal asncrona y se almacenan en un buffer. Lo mismo sucede cundo se quieren
transmitir datos por DOUT (pin 4).
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
29/126
II. MARCO TEORICO
28
2.2.1 Eleccin de la antena Xbee
Digi ofrece en la actualidad dos gamas de productos, las Xbee Znet 2.5, y las
Xbee Pro Znet 2.5. En este apartado comparamos las dos antenas antes de
decidirnos por una de ellas:
Tabla 2.3 Comparativa de prestaciones entre Xbee.
SpecificationXbee Znet 2.5 Xbee PRO Xnet 2.5
Indoor/Urban Range Up to 133ft. (40 m) Up to 300 ft. (100 m)Outdoor RF line-of-sight Range Up to 400 ft. (120 m) Up to 1 mile (1.6 Km)
Transmit Power Output
2mW (+3dBm), boost modeenabled1.25mW (+1dBm), boost
mode disabled
63mW (+18dBm)10mW (+10 dBm) forinternational variant
RF Data Rate 250,000 bps 250,000 bpsSerial Interface Data Rate(software selectable)
1200230400 bps(non-standart baud rates alsosupported)
1200230400 bps(non-standart baud rates alsosupported)
Receiber Sensitivity -96 dBm, boost modeenabled-95 dBm, boost modedisabled
-102 dBm
En la tabla 2.3 vemos las prestaciones que ofrecen ambos mdulos. Las Xbee
Pro ganan en cuanto al alcance de las transmisiones a cambio de tener una potenciade salida bastante mayor. En cuanto a velocidades de transmisin, ambas son
semejantes a 250 kbps.
Por otro lado, por lo que se refiere a las caractersticas tcnicas (ver tabla 2.4),
podemos ver como las Xbee Pro tienen como desventaja, unos rangos de tensin
mucho menores (las Xbee Pro slo operan entre 3 y 3,4V y las Xbee entre 2.1 y
3.6V) que las Xbee. Otro factor en contra de las Xbee Pro es su mayor consumo (295
mA en la transmisin de datos de las Xbee Pro frente a unos 40 mA en las Xbee, y
45 mA en la recepcin para las Xbee Pro frente a 40 mA en las Xbee), esto hace que
el tiempo de vida de las bateras en las Xbee Pro sea mucho menor, tanto por el
menor margen de tensin como por los elevados consumos a los que se somete a la
batera.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
30/126
II. MARCO TEORICO
29
Tabla 2.4 Comparativa de prestaciones entre Xbee.Specification Xbee Znet 2.5 Xbee PRO Znet 2.5
Power RequirementsSupply Voltage 2.13.6 Volts 3.03.4 VOperating Current (Transmit,
max output power)
40mA (@3.3 V, boost mode enable)
35 mA(@3.3 V, boost mode enable)
295mA (@3.3 V)
Operating Current (Receive) 40mA (@3.3 V, boost mode enable)38 mA(@3.3 V, boost mode enable)
45 mA (@3.3V)
Idle Current (Receiber off) 15 mA 15 mAPower-down Current
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
31/126
II. MARCO TEORICO
30
de fibra de vidrio reforzada, cermica o plstico) sobre las cuales aparecen
laminadas (pegadas) pistas de material conductor (normalmente cobre). Las PCBs
se utilizan para conectar elctricamente, a travs de los caminos conductores,
diferentes componentes electrnicos soldados a ella. Una PCB es la forma mscompacta y estable de construir un circuito electrnico (en contraposicin a una
breadboard, perfboard o similar) pero, al contrario que estas, una vez fabricada, su
diseo es bastante difcil de modificar. As pues, la placa Arduino no es ms que una
PCB que implementa un diseo de circuitera interna.
No obstante, cuando hablamos de placa Arduino, deberamos especificar el
modelo concreto, ya que existen varias placas Arduino oficiales, cada una con
diferentes caractersticas (como el tamao fsico, el nmero de pines-hembraofrecidos, el modelo de microcontrolador incorporado y como consecuencia, entre
otras cosas, la cantidad de memoria utilizable, etc.). Conviene conocer estas
caractersticas para identificar que placa Arduino es la que nos convendr ms en
cada proyecto.
Un software (ms en concreto, un entorno de desarrollo) gratis, libre y
multiplataforma (ya que funciona en Linux, MacOS y Windows) que debemos
instalar en nuestro ordenador y que nos permite escribir, verificar y guardar (cargar)
en la memoria del microcontrolador de la placa Arduino el conjunto de instrucciones
que deseamos que este empiece a ejecutar. Es decir: nos permite programarlo. La
manera estndar de conectar nuestro computador con la placa Arduino para poder
enviarle y grabarle dichas instrucciones es mediante un simple cable USB, gracias a
que la mayora de placas Arduino incorporan un conector de este tipo.
Los proyectos Arduino pueden ser autnomos o no. En el primer caso, una
vez programado su microcontrolador, la placa no necesita estar conectada a ningncomputador y puede funcionar autnomamente si dispone de alguna fuente de
alimentacin. En el segundo caso, la placa debe estar conectada de alguna forma
permanente (por cable USB, por cable de red Ethernet, etc.) a un computador
ejecutando algn software especfico que permita la comunicacin entre este y la
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
32/126
II. MARCO TEORICO
31
placa y el intercambio de datos entre ambos dispositivos. Este software especfico lo
deberemos programar generalmente nosotros mismos mediante algn leguaje de
programacin estndar como Python, C, Java, Php, etc., y ser necesario
independiente completamente del entorno de desarrollo Arduino, el cual no senecesitara ms, una vez que la placa ya haya sido programada y est en
funcionamiento.
Un lenguaje de programacin libre. Por lenguaje de programacin se
entiende cualquier idioma artificial diseado para expresar instrucciones (siguiendo
unas determinadas reglas sintcticas) que pueden ser llevadas a cabo por maquinas.
Concretamente dentro del leguaje Arduino, encontramos elementos parecidos a
muchos otros leguajes de programacin existentes (como bloques condicionales, losbloques repetitivos, las variables, etc.), as como tambin diferentes comandos
asimismo llamados ordenes o funciones que nos permiten especificar de una
forma coherente y sin errores las instrucciones exactas que queremos programar en
el microcontrolador de la placa. Estos comandos los escribimos mediante el entorno
de desarrollo Arduino.
2.3.1 Por Qu Elegir Arduino?
Existen muchas otras placas de diferentes fabricantes que, aun que incorporan
diferentes modelos de microcontroladores, son comparables y ofrecen una
funcionalidad ms o menos similar a la de las placas Arduino. Todas ellas tambin
vienen acompaadas de un entorno de desarrollo agradable y cmodo y de un
lenguaje de programacin sencillo y completo. No obstante, la plataforma Arduino
(hardware + software) ofrece una serie de ventajas:
Arduino es libre y extensible:Esto quiere decir que cualquiera que desee
ampliar y mejorar tanto el diseo hardware de las placas como el entorno de
desarrollo software y el propio lenguaje de programacin, puede hacerlo sin
problemas. Esto permite que exista un rico ecosistema de extensiones, tanto
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
33/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
34/126
II. MARCO TEORICO
33
2.3.2 El Modelo Del Microcontrolador
El microcontrolador que lleva la placa Arduino UNO es el modelo ARmega328P de la
marca Atmel. La P del final significa que este chip incorpora la tecnologaPicopower (propietaria de Atmel), la cual permite un consumo elctrico
sensiblemente menor comparndolo con el modelo equivalente sin Picopower, el
ATmega328 (sin la P). De todas formas, aunque el ATmega328P pueda trabajar a
un voltaje menor y consumir menos corriente que el ATmega328 (especialmente en
los modos de hibernacin), ambos modelos son funcionalmente idnticos.
Al igual que ocurre con el resto de microcontroladores usados en otras placas
Arduino, el ATmega328P tiene una arquitectura de tipo AVR, arquitectura
desarrollada por Atmel y en cierta medida competencia de otras arquitecturas como
por ejemplo PIC del fabricante Microchip. Ms concretamente, el ATmega328P
pertenece a la subfamilia de microcontroladores megaAVR. Otras subfamilias de la
arquitectura AVR son la tinyAVR (cuyos microcontroladores son ms limitados y se
identifican con el nombre de ATtiny) y la XMEGA (cuyos microcontroladores son
ms capaces y se identifican con el nombre de ATxmega).
Cada modelo de microcontrolador tiene un nmero y ubicacin de pines
diferente, en nuestro caso concreto deberemos tener a la mano la disposicin depines del ATmega328P. La figura 2.5 muestra esta disposicin en el encapsulado de
tipo DIP.
Figura 2.5 Microcontrolador ATmega328P
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
35/126
II. MARCO TEORICO
34
Observando la imagen se puede saber que pin es el que recibe la
alimentacin elctrica (sealado como VCC), que dos pines estn conectados a
tierra (los sealados como GND), que pines son los de E/S (sealados como PBx,
PCx o PDx) y la existencia de otros pines ms especficos como el AVCC (donde serecibe la alimentacin suplementaria para el convertidor analgico-digital interno del
chip) o el AREF (donde se recibe la referencia analgica para dicho convertidor).
Tambin se puede observar que junto el nombre de los pines E/S se indica entre
parntesis las funciones especializadas que cada uno de ellos tiene en particular
(adems de su funcin genrica de entrada/salida).
2.3.3 Memorias Del Microcontrolador
Otra cosa que hay que saber de los microcontroladores son los tipos y
cantidades de memoria que alojan en su interior. En el caso del ATmega328P
tenemos:
Memoria Flash: memoria persistente donde se almacena permanentemente
el programa que ejecuta el microcontrolador (hasta una nueva reescritura si se da el
caso). En el caso del ATmega328P tiene una capacidad de 32KB.En los microcontroladores que vienen incluidos en la placa Arduino no
podemos usar toda la capacidad de la memoria Flash porque existen 512 bytes (el
llamado bootloader o gestor de arranque), el cual nos permite usar la placa
Arduino de una forma ms sencilla y cmoda sin tener que conocer las interioridades
electrnicas ms avanzadas del microcontrolador. Los ATmega328P que podamos
adquirir individualmente normalmente no incluyen de fbrica este pequeo programa,
por lo que si ofrecen los 32KB ntegros, pero a cambio no podremos conectarlos a
una placa Arduino y que funcionen sin ms ya que les faltara tener grabada esa
preconfiguracin.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
36/126
II. MARCO TEORICO
35
Memoria SRAM: memoria voltil donde se alojan los datos que en ese
instante el programa (grabado separadamente en la memoria flash, recordemos)
necesita crear o manipular para su correcto funcionamiento. Estos datos suelen tener
un contenido variable a lo largo del tiempo de ejecucin del programa y cada uno esde un tipo concreto (es decir, un dato puede contener un valor numrico entero, otro
un numero decimal, otro un valor de tipo carcter, tambin pueden ser cadenas de
texto fijas u otros tipos de datos ms especiales). Independientemente del tipo de
dato, su valor siempre ser eliminado cuando se deje de alimentar elctricamente al
microcontrolador. En el caso del ATmega328P esta memoria tiene una capacidad de
2KB.
Memoria EEPROM:memoria persistente donde se almacenan datos que sedesea que permanezcan grabados una vez apagado el microcontrolador para
podelos usar posteriormente en siguientes reinicios. En el caso del ATmega328P
esta memoria tiene una capacidad de 1KB, por lo que se puede entender como una
tabla de 1024 posiciones de un byte cada una.
2.3.4 Protocolos De Comunicacin I2C/TWI Y SPI
Cuando se desea transmitir un conjunto de datos desde un componente electrnico aotro, se puede hacer de mltiples formas. Una de ellas es estableciendo una
comunicacin serie; en este tipo de comunicacin la informacin es transmitida bit a
bit en cada momento. Otra manera de transferir datos es mediante la llamada
comunicacin paralela, en la cual se envan varios bits simultneamente, cada uno
por un canal separado y sincronizado con el resto.
El microcontrolador, a travs de algunos de sus pines de E/S, utiliza el sistema
de comunicacin serie para transmitir y recibir rdenes y datos hacia/desde otros
componentes electrnicos. Esto es debido sobre todo a que en una comunicacin
serie solo se necesita en teora un nico canal (un nico cable), mientras que en
una comunicacin en paralelo se necesitan varios cables, con el correspondiente
incremento de complejidad, tamao y coste del circuito.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
37/126
II. MARCO TEORICO
36
No obstante, no podemos hablar de un solo tipo de comunicacin serie.
Existen muchos protocolos y estndares diferentes basados todos ellos en la
transferencia de informacin en serie, pero implementando de una forma diferente
cada uno los detalles especficos (como el modo de sincronizacin entre emisor yreceptor, la velocidad de transmisin, el tamao de los paquetes de datos, los
mensajes de conexin y desconexin y de dar paso al otro en el intercambio de
informacin, voltajes utilizados, etc.). De entre el gran nmero de protocolos de
comunicacin serie reconocidos por la inmensidad variedad de dispositivos
electrnicos del mercado, los que nos interesan conocer son los que el ATmega328P
es capaz de comprender y por tanto, los que podr utilizar para contactar con esa
variedad de perifricos. En este sentido, los estndares ms importantes son:
I2C(Inter-integrated Circuit, tambin conocido con el nombre de TWIde TWo-wIre,
literalmente dos cables en ingls): es un sistema muy utilizado en la industria
principalmente para comunicar circuitos integrados entre s. Su principal
caracterstica es que utiliza dos lneas para transmitir la informacin: una (llamada
SDA) sirve para transferir los datos (los 0s y los 1s) y la otra (llamada lnea SCL)
sirve para enviar la seal de reloj. En realidad se necesitaran dos lneas ms: la de
alimentacin y la de tierra comn, pero estas ya se presuponen existentes en el
circuito. En la figura 2.6 se muestran las seales de las lneas SDA y SCL
correspondientes a este tipo de protocolo de comunicacin.
Figura 2.6 Estructura logia bsica I2C
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
38/126
II. MARCO TEORICO
37
Por seal de reloj se entiende una seal binaria de una frecuencia peridica
muy precisa que sirve para coordinar y sincronizar los elementos integrantes de una
comunicacin (es decir, los emisores y receptores) de forma que todos sepan cuando
empieza, cunto dura y cuando acaba la transferencia de informacin. En hojastcnicas y diagramas a la seal de reloj en general se le suele describir como CLK
(del ingls clock).
Cada dispositivo conectado al bus I2C tiene una direccin nica que lo
identifica respecto el resto de dispositivos, y que puede estar configurado como
maestro o como esclavo. Un dispositivo maestro es el que inicia la transmisin de
datos y adems genera la seal de reloj, pero no es necesario que el maestro seasiempre el mismo dispositivo: esta caracterstica se la pueden ir intercambiando
ordenadamente los dispositivos que tengan esa capacidad.
Figura 2.7 Estructura bsica I2C
Tal como se muestra en el diagrama de la figura 2.7, para funcionar
correctamente tanto la lnea SDA como la SCL necesitan estar conectadas
mediante una resistencia pull-up a la fuente de alimentacin comn, la cual puede
proveer un voltaje generalmente de 5V o 3.3V (aunque sistemas con otros voltajes
pueden ser posibles).
La velocidad de transferencia de datos es de 100 Kbits por segundo en el
modo estndar (aunque tambin se permiten velocidades de hasta 3.4 Mbit/s). No
obstante, al haber una nica lnea de datos, la transmisin de informacin es half
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
39/126
II. MARCO TEORICO
38
dplex (es decir, la comunicacin solo se puede establecer en un sentido al mismo
tiempo) por lo que en el momento que un dispositivo empiece a recibir un mensaje,
tendr que esperar a que el emisor deje de transmitir para poder responderle.
SPI (Serial Pripherial Interface): al igual que el sistema I2C, el sistema decomunicacin SPI es un estndar que permite controlar (a cortas distancias) casi
cualquier dispositivo electrnico digital que acepte un flujo de bits serie conectado al
bus SPI puede ser maestro en ingls, master o esclavo en ingls, slave-,
donde el primero es el que inicia la transmisin de datos y adems genera la seal
de reloj (aunque, como con I2C, con SPI tampoco es necesario que el maestro sea
siempre el mismo dispositivo) y el segundo se limita a responder.
La mayor diferencia entre el protocolo SPI y el I
2
C es que el primero requierede cuatro lneas (cables) en vez de dos. Una lnea (llamada normalmente SCK)
enva a todos los dispositivos la seal de reloj generada por el maestro actual;
(llamada normalmente SS) es la utilizada por ese maestro para elegir en cada
momento con que dispositivo esclavo se quiere comunicar de entre los varios que
puedan estar conectados (ya que solo pueden transferir datos con un solo esclavo a
la vez); otra (llamada normalmente MOSI) es la lnea utilizada para enviar datos -0s
y 1s- desde el maestro hacia el esclavo elegido; y la otra (llamada normalmente
MISO) es la utilizada para enviar los datos en sentido contrario: la respuesta de ese
esclavo al maestro. Es fcil ver que, al haber dos lneas para los datos la transmisin
de datos es full dplex (es decir, que la informacin puede ser transportada en
ambos sentidos a la vez).
En las siguientes figuras se muestra el esquema de lneas de comunicacin
existentes entre un maestro y un esclavo y entre un maestro y tres esclavos
respectivamente. Se puede observar que, para el caso de la existencia de varios
esclavos es necesario utilizar una lnea SS diferente por cada una de ellos, ya queesta lnea es la que sirve para activar el esclavo concreto que en cada momento el
maestro desee utilizar (esto no pasa con las lneas de reloj, MOSI y MISO, que
son compartidas por todos los dispositivos). Tcnicamente hablando, el esclavo que
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
40/126
II. MARCO TEORICO
39
reciba por su lnea SS un valor de voltaje BAJO ser el que est seleccionado en ese
momento por el maestro, y los que reciban el valor ALTO no lo estarn.
Figura 2.8 Estructura bsica SPI
Como se puede ver en la Figura 2.8, el protocolo SPI respecto el I2C tiene la
desventaja de exigir al microcontrolador dedicar muchos ms pines de E/S a la
comunicacin externa. En cambio, como ventaja podemos destacar que es ms
rpido y consume menos energa que I
2
C.La disposicin de pines del microcontrolador ATmega328P, los pines
correspondientes a las lneas I2C SDA y SCL son los nmeros 27 y 28,
respectivamente, y los pines correspondientes a las lneas SPI SS, MOSI, MISO y
SCK son los nmeros 16, 17, 18 y 19, respectivamente. Si se necesitaran ms lneas
SS (por que haya ms de un dispositivo esclavo conectado en nuestro circuito), se
podra utilizar cualquier otro pin E/S siempre que respete el convenio de poner el
valor de su voltaje de salida a BAJO cuando se desee trabajar con el dispositivo
esclavo asociado y poner a ALTO el resto de los pines SS.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
41/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
42/126
II. MARCO TEORICO
41
La placa Arduino UNO R3 dispone de un chip que realiza esta funcin de
traductor del protocolo USB a un protocolo serie ms sencillo (y viceversa). Ese chip
es ATmega16U2 (figura 2.9). El ATmega16U2 es todo un microcontrolador en si
mismo (con su propia CPU, con su propia memoria - tiene por ejemplo 16 Kbytes dememoria flash para su uso interno, de ah su nombre -, etc.) y por tanto podra
realizar muchas ms tareas que no solo la traduccin del protocolo USB. De hecho
es tcnicamente posible desprogramarlo para que haga otras cosas y convertir asi la
placa Arduino en virtualmente cualquier tipo de dispositivo USB conectado a nuestro
computador (un teclado, un ratn, un dispositivo MIDI). No obstante, por defecto el
ATmega16U2 que viene incluido en la placa Arduino viene ya con el firmware pre-
programado para realizar exclusivamente la funcin interprete al ATmega328P y yaest.
Este firmware es software libre por lo que se puede acceder a su cdigo
fuente y tambin est disponible su correspondiente fichero .hex, dentro del
conjunto de ficheros descargados, junto con el entorno de desarrollo oficial de
Arduino (concretamente, dentro de la carpeta firmwaresdentro de hardware).
En modelos de la placa Arduino anteriores al UNO (como el modelo NG,
Diecimila o el Duemilanove) el chip ATmega16U2 no vena: en su lugar apareca un
circuito conversor de USB a serie del fabricante FTDI, concretamente el FT232RL.
Una ventaja de ver sustituido el FT232RL por el ATmega16U2 es el precio. Otra
ventaja es tener la posibilidad (si somos usuarios avanzados, tal como hemos
comentado ya) de reprogramar el ATmega16U2 para que en vez de funcionar como
un simple conversor USB-SERIE pueda disimular ser cualquier otro dispositivo USB,
que, por ejemplo, con el FT232RL no podemos porque est pensado para ser tan
solo una funcin para la que fue construido.
El ATmega16U2 viene acompaado en la placa Arduino por un reloj osciladorde cristal, de uso exclusivo para l, que sirve para mantener la sincronizacin con la
comunicacin USB.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
43/126
II. MARCO TEORICO
42
2.3.6 Las Entradas y Salidas Digitales.
La placa Arduino dispone de 14 pines-hembra de entradas o salidas (segn lo
convenga) digitales, numeradas desde la 0 hasta la 13. Es aqu donde conectaremosnuestros sensores para que la placa pueda recibir datos del entorno, y tambin
donde conectaremos los actuadores para que la placa pueda enviarles las ordenes
pertinentes, adems de poder conectar cualquier otro componente que necesite
comunicarse con la placa de alguna manera, a veces a estos pines-hembra digitales
de propsito general se les llama pines GPIO (de General Purpose Input/Output).
Todos estos pines-hembra digitales funcionan a 5 volts, pueden proveer un
mximo de 40 mA y disponen de una resistencia pull up interna de entre 20 K y
50K que inicialmente esta desconectada (salvo que nosotros indiquemos lo
contrario mediante conexin software).
Hay que tener en cuenta, no obstante, que aun que cada pin individual pueda
proporcionar hasta 40 mA como mximo en realidad, internamente la placa agrupa
los pines digitales de tal forma que tan solo pueda aportar 100 mA a la vez el
conjunto de los pines nmero 0, 1, 2, 3 y 4, y 100 mA ms el resto de los pines (del 5
al 13). Esto quiere decir que como mucho podramos tener 10 pines ofreciendo 20
mA a la vez.
2.3.7 Las entradas analgicas
La placa Arduino dispone de 6 entradas analgicas (en forma de pines-
hembra etiquetados como "A0", "A1"... hasta "A5") que pueden recibir voltajes dentro
de un rango de valores continuos de entre 0 y 5 V. No obstante, la electrnica de la
placa tan solo puede trabajar con valores digitales, por lo que es necesaria una
conversin previa del valor analgico recibido a un valor digital lo ms aproximado
posible. Esta se realiza mediante un circuito conversor analgico/digital incorporado
en la propia placa.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
44/126
II. MARCO TEORICO
43
El circuito conversor es de 6 canales (uno por cada entrada) y cada cana
dispone de 10 bits (los llamados "bits de resolucin") para guardar el valor del voltaje
convertido digitalmente.
En general, la cantidad de bits de resolucin que tiene un determinado
conversor analgico/digital es lo que marca en gran medida el grado de precisin
conseguida en la conversin de seal analgica a digital, ya que cuantos ms bits de
resolucin tenga, ms fiel ser la transformacin. Por ejemplo, en el caso concreto
del conversor incorporado en la placa Arduino, si contamos el nmero de
combinaciones de 0s y 1s que se pueden obtener con 10 posiciones, vemos que hay
un mximo de 2
10
(1024) valores diferentes posibles. Por tanto, la placa Arduinopuede distinguir para el voltaje digital desde el valor 0 hasta el valor 1023. Si el
conversor tuviera por ejemplo 20 bits de resolucin, la variedad de valores digitales
que podra distinguir sera muchsimo ms grande (220= 1048576) y podra afinar la
precisin mucho ms.
Esto es fcil verlo si dividimos el rango analgico de entrada (5 V - 0V = 5 V
entre el nmero mximo posible de valores digitales (1024). Obtendremos que cada
valor digital corresponde a una "ventana" analgica de aproximadamente 5V/1024=5
mV. En otras palabras: todos los valores analgicos dentro de cada rango de 5 mV
(desde 0 a 5 V) se "colapsan" sin distincin en un nico valor digital (desde 0 a
1023). As pues, no podremos distinguir valores analgicos distanciados por menos
de 5 mV.
En muchos de nuestros proyectos ya nos es suficiente este grado de
precisin, pero en otros puede que no. Si el conversor analgico/digital tuviera ms
bits de resolucin, el resultado de la divisin rango_analgico_entrada/nmero_
valores_digitales sera menor, y por tanto la conversin sera ms rigurosa. Pero
como no se pueden aumentar los bits de resolucin del conversor de la placa, si
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
45/126
II. MARCO TEORICO
44
queremos ms exactitud se ha de optar por otra solucin: en vez de aumentar el
denominador de la divisin anterior, se puede reducir su numerador (es decir, el
rango analgico de entrada, o ms especficamente, su lmite superior -por defecto
igual a 5 V-, ya que el inferior es 0). Este lmite superior en la documentacin oficialse suele nombrar como "voltaje de referencia".
La manera prctica y concreta de reducir el voltaje de referencia del conversor
analgico/digital de la placa Arduino no la podemos explicar todava porque an nos
faltan los conocimientos necesarios para poder llevar a cabo todo el proceso.
Por ltimo, decir que estos pines-hembra de entrada analgica tienen tambintoda la funcionalidad de los pines de entrada-salida digitales. Es decir, que si en
algn momento necesitamos ms pines-hembra digitales ms all de los 14 que la
placa Arduino ofrece (del 0 al 13), los 6 pines-hembra analgicos pueden ser usados
como unos pines-hembra digitales ms (numerndose entonces del 14 al 19) sin
ninguna distincin. Enseguida, a manera de resumen en la tabla 2.5 podrn
visualizar las principales caractersticas de nuestro microcontrolador receptor.
Tabla 2.5Caractersticas tcnicas de Arduino.
Parmetro Dato
Voltaje operativo 5 V
Voltaje de entrada recomendado 7-12 V
Voltaje de entrada lmite 6-20 V
Pines de entrada y salida digital 14 (6 proporcionan PWM)
Pines de entrada analgica 6
Intensidad de corriente 40 mA
Memoria Flash 32KB (2KB reservados para el bootloader)
SRAM 2 KB
EEPROM 1 KB
Frecuencia de reloj 16 MHz
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
46/126
II. MARCO TEORICO
45
2.3.8 Otros Usos De Los Pines-Hembra De La Placa
Existen determinados pines-hembra de entrada/salida digitales, que adems de su
funcin estndar, tienen otras funciones especializadas. Por ejemplo:
Pin 0 (RX) y pin 1 (TX): permiten que el microcontrolador ATmega328P pueda
recibir directamente datos en serie (por el pin RX) o transmitirlos (por el pin TX) sin
pasar por la conversin USB-Serie que realiza el chip ATmega16U2. Es decir, estos
pines posibilitan la comunicacin sin intermediarios de dispositivos externos con el
receptor/transmisor serie (de tipo TTL-UART) que incorpora el propio ATmega328P.
De todas maneras, estos pines estn internamente conectados (mediante
resistencias de 1 K) al chip ATmega16U2, por lo que los datos disponibles en el
USB tambin lo estarn en estos pines.
Hay que aclarar que en la placa estn incrustados un par de LEDs etiquetados
como RX y TX, pero que, a pesar de su nombre, no se encienden cuando se
reciben o transmiten datos de los pines 0 y 1, sino solamente cuando se reciben o
transmiten datos provenientes de la conexin USB a travs del chip ATmega16U2.
Pines 2 y 3:se pueden usar, con la ayuda de programacin software, para gestionar
interrupciones. No obstante, este tema es relativamente avanzado y no lo
abordaremos en este libro.
Pines 10 (SS), 11 (MOSI), 12 (MISO) y 13 (SCK): se pueden usar para conectar
algn dispositivo con el que se quiera llevar a cabo comunicaciones mediante el
protocolo SPI. Estudiaremos casos concretos ms adelante.
Pin 13: este pin est conectado directamente a un LED incrustado en la placa
(identificado con la etiqueta "L") de forma que si el valor del voltaje recibido por este
pin es ALTO (HIGH), el LED se encender, y si dicho valor es BAJO (LOW), el LED
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
47/126
II. MARCO TEORICO
46
se apagar. Es una manera sencilla, y rpida de detectar seales de entradas
externas sin necesidad de disponer de ningn componente extra.
Tambin existen un par de pines-hembra de entrada analgica que tienen unafuncin extra adems de la habitual:
Pines A4 (SDA) y A5 (SCL):se pueden usar para conectar algn dispositivo con el
que se quiera llevar a cabo comunicaciones mediante el protocolo l2C/TWI. La placa
Arduino ofrece (por una simple cuestin de comodidad y ergonoma) una duplicacin
de estos dos pines-hembra en los dos ltimos pines-hembra tras el pin "AREF", los
cuales estn sin etiquetar porque no hay ms espacio fsico.
Finalmente, a lo largo de la placa existen diferentes pines-hembra no
comentados todava que no funcionan ni como salidas ni como entradas porque
tienen un uso muy especfico y concreto:
Pin AREF:ofrece un voltaje de referencia externo para poder aumentar la precisin
de las entradas analgicas. Estudiaremos su uso prctico en el captulo 6.
Pin RESET: si el voltaje de este pin se establece a valor BAJO (LOW), el
microcontrolador se reiniciar y se pondr en marcha el bootloader. Para realizar
esta misma funcin, la placa Arduino ya dispone de un botn, pero este pin ofrece la
posibilidad de aadir otro botn de reinicio a placas supletorias (es decir, placas que
se conectan encima de la placa Arduino para ampliarla y complementarla), las cuales
por su colocacin puedan ocultar o bloquear el botn de la placa Arduino.
Pin IOREF:en realidad este pin es una duplicacin regulada del pin "Vin". Su funcin
es indicar a las placas supletorias conectadas a nuestra placa Arduino el voltaje al
que trabajan los pines de entrada/salida de esta, para que las placas supletorias se
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
48/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
49/126
II. MARCO TEORICO
48
2.3.9 Arduino Mega 2560
Placa basada en el microcontrolador ATmega2560. Como caractersticas ms
destacables diremos que tiene 54 pines de entrada/salida digitales (de los cuales 14
pueden ser usados como salidas analgicas PWM), 16 entradas analgicas y 4
receptores/transmisores serie TTL-UART. Consta de una memoria Flash de 256
Kilobytes (de los cuales 8 estn reservados para el bootloader), una memoria SRAM
de 8 KB y una EEPROM de 4 KB. Su voltaje de trabajo es igual al del modelo UNO:
5V.
En la seccin correspondiente a esta placa dentro de la web oficial de Arduino
podemos descargarnos los ficheros del diseo esquemtico de la placa en PDF, los
ficheros del diseo de la PCB en el formato propio del programa EAGLE y una
imagen ilustrativa del mapeado de los pines del microcontrolador con relacin a los
pines de la placa. Tambin nos podemos descargar la documentacin oficial del
microcontrolador ATmega2560.
La placa Arduino Mega tiene tres puertos adicionales de serie: Serial1en los
pines 19 (RX) y 18 (TX), Serial2en los pines 17 (RX) y 16 (TX), Serial3en los pines
15 (RX) y 14 (TX). Para utilizar estos pines para comunicarse con el ordenador
personal, necesitars un adaptador USB adicional a serie, ya que no estnconectados al adaptador USB-Serie de la placa Arduino Mega.
Figura 2.11 Puertos seriales del Arduino MEGA
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
50/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
51/126
II. MARCO TEORICO
50
hay que escribir el texto deseado en la caja de texto que aparece en su parte
superior y clicar en el botn "Send" (o pulsar Enter). Aunque, evidentemente, no
servir de nada este envo si la placa no est programada con un sketch que sea
capaz de obtener estos datos y procesarlos. Por otro lado, los datos recibidosprovenientes de la placa sern mostrados en la seccin central del "Serial monitor",
tal como se muestra en la figura 2.12.
Figura 2.12 Monitor Serial
Es importante elegir mediante la caja desplegable de la parte inferior derecha
del "Serial monitor" la misma velocidad de transmisin (en bits/s, tambin llamados
"baudios") que la que se haya especificado en el sketch ejecutado en la placa,
porque si no, los caracteres transferidos no sern reconocidos correctamente y la
comunicacin no tendr sentido.
Tambin es importante recordar que en sistemas MacOSX y Linux la placa
Arduino UNO se auto resetea (es decir, recomienza a ejecutar el sketch desde el
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
52/126
II. MARCO TEORICO
51
principio) cada vez que abrimos el "Serial monitor" y conectamos con ella. Esto con
la placa Leonardo no ocurre.
No solo mediante el "Serial monitor" podemos comunicarnos mediante una
conexin serie (a travs de USB) con la placa. Se puede utilizar cualquier otro
programa que permita enviar y recibir datos a travs de conexiones de este tipo.
Estos programas se suelen denominar "terminales serie". En los repositorios de
Ubuntu y Fedora (y de la mayora de distribuciones Linux) podemos encontrar varios,
como "gtkterm", "cutecom", "picocom" o "minicom", entre otros. El "Serial monitor" es
una ventana del IDE que nos permite desde nuestro computador enviar y recibir
datos textuales a la placa Arduino usando el cable USB (ms exactamente, mediante
una conexin serie). Para enviar datos, simplemente hay que escribir el textodeseado en la caja de texto que aparece en su parte superioi y clicar en el botn
"Send" (o pulsar Enter). Aunque, evidentemente, no servir de nada este envo si la
placa no est programada con un sketch que sea capaz de obtener estos datos y
procesarlos. Por otro lado, los datos recibidos provenientes de la placa sern
mostrados en la seccin central del "Serial monitor".
Es importante elegir mediante la caja desplegable de la parte inferior derech;
del "Serial monitor" la misma velocidad de transmisin (en bits/s, tambin llamado:
"baudios") que la que se haya especificado en el sketch ejecutado en la placa,
porque si no, los caracteres transferidos no sern reconocidos correctamente y I;
comunicacin no tendr sentido.
Tambin es importante recordar que en sistemas MacOSX y Linux la plac;
Arduino UNO se auto resetea (es decir, recomienza a ejecutar el sketch desde e
principio) cada vez que abrimos el "Serial monitor" y conectamos con ella. Esto con I;
placa Leonardo no ocurre.
No solo mediante el "Serial monitor" podemos comunicarnos mediante un;
conexin serie (a travs de USB) con la placa. Se puede utilizar cualquier otrc
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
53/126
II. MARCO TEORICO
52
programa que permita enviar y recibir datos a travs de conexiones de este tipo
Estos programas se suelen denominar "terminales serie". En los repositorios de
Ubuntu y Fedora (y de la mayora de distribuciones Linux) podemos encontrar varios
como "gtkterm", "cutecom", "picocom" o "minicom", entre otros.
2.5 Xbee Shields
Adems de las placas Arduino propiamente dichas, tambin existen los llamados
shields (en ingls significa escudo) no es ms que una placa de circuito impreso
que se coloca en la parte superior de la placa de Arduino y se conecta a ella
mediante el acoplamiento de sus pines sin necesidad de ningn cable. Su funcin esactuar como placas supletorias, ampliando las capacidades y complementando la
funcionalidad de la placa Arduino base de una forma ms compacta y estable.
Dependiendo el modelo, incluso se pueden apilar varios shields uno encima
de otro. Esto depender de si el shield inferior ofrece pines-hembra para poder
acoplarlos a los pines sobresalientes del dorso del shield superior.
Normalmente, los shields comparten las lneas GND, 5 volts (0 3.3 Volts)
RESET o AREF con la placa de Arduino, y adems suelen monopolizar el uso de
algunos pines de entrada/salida para su propia comunicacin con ella, por lo que
estos quedan inutilizados para cualquier otro uso. Por ejemplo, si se acoplan varios
shields uno sobre otroy todos se comunican mediante SPI con la placa Arduino,
todos ellos podrn utilizar sin problemas los pines comunes correspondientes a las
lneas MISO, MOSI y SCLK, pero cada una de ellos deber usan un pin diferente
como la lnea CS.
Por otro lado, hay que tener en cuenta los requerimientos de alimentacin
elctrica que necesitan los shields. Ya sabemos que una placa Arduino recibealrededor de 500 mA (ya sea mediante conexin USB o mediante conexin Jack
externa), por lo que la corriente que queda para el funcionamiento de un posible
shield es pequea. Ejemplos de shields que consumen mucho (de hasta 300 mA)
son los que tienen pantallas LCD o los que proporcionan conectividad Wi-Fi.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
54/126
II. MARCO TEORICO
53
Tambin hay que tener en cuenta si un shield determinado necesita una tensin de
3.3 V.
Existen literalmente centenares de shields construidos por la comunidad
compatibles con la placa UNO que le aportan un plus de versatilidad, enseguida sehablara un poco sobre uno de ellos que se utiliz en la elaboracin de este proyecto.
2.5.1 Arduino Wireless SD Shield
Este shield est pensado para permitir a una placa Arduino UNO poderse comunicar
inalmbricamente mediante el uso de un mdulo Xbee o similar. Esto permite
establecer un enlace con otro dispositivo Xbee a una distancia de hasta unos 100metros en interior y de hasta unos 300 metros en exterior con lnea de visin directa.
Igual que ocurre con el resto de shields oficiales, una vez conectado este
shield sobre la placa UNO gracias a la ristra de pines que encaja perfectamente
arriba y abajo, para nuestros circuitos utilizaremos a partir de entonces las entradas y
salidas ofrecidas por los pines-hembra de este shield. Estas entradas y salidas tienen
exactamente la misma disposicin y funcionalidad que las de la placa UNO e, incluso
si fuese necesario, se podra conectar sin problemas un segundo shield en la parte
superior de este shield.
Este shields dispone de un conmutador etiquetado como Serial Select que
sirve para determinar cmo se comunicara el mdulo Xbee con la placa Arduino
sobre la que se encuentra. Si el conmutador est colocado en la posicin Micro, los
datos recibidos por el mdulo Xbee llegaran sin intermediarios al microcontrolador
(seal RX) y los datos enviados desde el microcontrolador (seal TX) serna
transmitidos tanto hacia el modulo como hacia el posible conmutador que estconectado va USB. No obstante, en esa posicin el ATmega328P no podr ser
programado a travs del USB.
Si el conmutador est colocado en la posicin USB, el mdulo Xbee se
comunicara directamente con el chip ATmega16U2 (suponiendo que estamos
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
55/126
II. MARCO TEORICO
54
usando la placa UNO) ignorando completamente la presencia del microcontrolador
ATmega328P. En esta posicin, el mdulo Xbee ser capaz de comunicarse
directamente con un conmutador conectado va USB para poder ser configurado y
utilizado con total independencia del resto de elementos de la placa Arduino. Noobstante, para que el modo USB pueda funcionar correctamente, hay que tener la
precaucin de programar previamente el microcontrolador ATmega328P con un
cdigo Arduino con sus funciones setup() y loop.
Figura 2.13 Arduino Wireless SD Shield
El shield mostrado en la figura 2.13 tambin incorpora un zcalo para colocar
una tarjeta microSD, la cual se podr utilizar mediante la librera de programacin
SD, que viene por defecto en el leguaje Arduino. Para poder comunicarse con esta
tarjeta, la placa Arduino UNO utiliza el protocolo SPI, empleando para ello como
pines SS el nmero 4, adems de los pines 11,12 y 13. Esto quiere decir que estos
cuatro pines del shield no se podrn utilizar para otra cosa y por lo tanto, disponemosde 4 entradas/salidas digitales menos.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
56/126
II. MARCO TEORICO
55
2.5.2 Caractersticas de las tarjetas SD
Secure Digital (SD) es un formato de tarjeta de memoria no voltil diseada para ser
usada en dispositivos porttiles (telfonos mviles, cmaras digitales, computadoresporttiles, etc.) cuya especificacin es mantenida por la SD Card Association
(https://www.sdcard.org), entidad que engloba muchos fabricantes de hardware.
El estndar SD incluye 4 "familias", las cuales son las siguientes (por orden
cronolgico de aparicin): las tarjetas originales (SDSC -Standard capacity-); las
tarjetas de alta capacidad (SDHC -High capacity- que permiten almacenar hasta 32
Gbytes); las tarjetas de capacidad extendida (SDXC -Extended capacity- que
permiten almacenar hasta 2048 GBytes); y las tarjetas que combinan
almacenamiento de datos con funciones de entrada/salida (SDIO).
Los dispositivos que alojan las tarjetas SD siempre son compatibles "hacia
atrs" (es decir: si el dispositivo es compatible con SCXC, tambin lo ser con SCHC
y SDSC, por ejemplo). No obstante, cada una de estas familias redefine sus
conexiones internas, por lo que una tarjeta SCXC (por ejemplo) no puede ser
utilizada dentro de dispositivos que no sean explcitamente compatibles con esa
familia en concreto.
Desgraciadamente, las tarjetas SDXC se comercializan pre-formateadas con
el sistema de ficheros privativo y patentado exFAT de Microsoft, por lo que algunos
dispositivos es posible que no sean capaces de leer su contenido. En estos casos,
para que estas tarjetas sean reconocidas, se deben formatear con otro sistema de
ficheros, generalmente FAT32. De hecho, la mayora de tarjetas SD de las otras
familias se suelen adquirir en cualquier tienda local de electrnica ya formateadas en
el sistema FAT32. El FAT32 es el sistema de ficheros ms extendido en tarjetas SD
debido a que la gran mayora de aparatos electrnicos que utilizan este tipo detarjetas (cmaras, mviles, etc.) son capaces de reconocer este formato sin
problemas.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
57/126
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
58/126
II. MARCO TEORICO
57
algunas tarjetas SDHC y en casi todas las SDXC-, permite velocidades tericas de
hasta aproximadamente 100 MBytes/s en su versin "I" y de hasta aproximadamente
300 MBytes/s y en su versin "II", siempre y cuando el dispositivo donde se aloje la
tarjeta en cuestin sea capaz de gestionar estas velocidades tambin.
Como la mayora de los formatos de tarjeta de memoria, el SD est cubierto
por numerosas patentes y marcas registradas, y solo se puede licenciar a travs de
la SD Card Association. Para solucionar este problema, un mtodo comn es utilizar
el modo SPI/MMC (que las tarjetas SD implementan siempre) para emular el
comportamiento de las antiguas tarjetas MultiMediaCard. Concretamente, en este
modo algunos de los pines de la tarjeta son usados como las lneas MOSI, MISO,
SCK y SS del protocolo SPI (adems de usar otros pines para conexiones aalimentacin, tierra o nada). De esta forma se puede utilizar una conexin que,
aunque ms lenta, es compatible con los puertos SPI de muchos microcontroladores.
Otros modos de transferencia soportados por las tarjetas SD son el llamado modo
"un-bit" (propietario) y el modo "cuatro-bit" (que soporta transferencias paralelas de
cuatro bits, tambin propietario), los cuales utilizan los pines de la tarjeta de otra
forma.
Figura 2.15 Configuracin de las memorias SD y MicroSD
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
59/126
II. MARCO TEORICO
58
2.6 LCD grfico de 128x64
La mayora de los LCDs grficos usan un controlador como el KS0108 (o
compatible). Cada controlador tiene una memoria de 512 bytes interna y por lo tanto
permite controlar un display de 64x64 pxeles. El truco que usan los diplays ms
grandes es usar un controlador por cada fraccin de la pantalla, es decir, un display
de 128x64 tiene 2 controladores, un display de 196x64 tiene 3 controladores, y uno
de 128x128 tiene 4 controladores. En la figura 2.16 podemos ver el diagrama a
bloques correspondiente asi como tambin la imagen fsica del mismo en la figura
2.18.
Figura 2.16Diagrama a bloques del LCD 128X64
Figura 2.17LCD grafico 128X64
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
60/126
II. MARCO TEORICO
59
Cada controlador es independiente, es decir, no transmiten informacin entre
ellos. Para elegir a qu controlador hablarle, se usan dos lneas de control, llamadas
CS1 y CS2 (CS = Chip Select). Bsicamente acta como una "direccin" de 2 bits,
que elige a cul de los 4 controladores posibles se desea hablar. El controlador notiene generador interno de fuentes, por lo que si se desea escribir un texto, ser
necesario almacenar los pxeles de cada carcter en un microcontrolador o memoria
externa. En la tabla 2.6 se hace la descripcin de cada uno de los pines de nuestro
GLCD 128X64
Tabla 2.6 Descripcin de Pines
Pin No. Symbol Level Description
1 Vdd 5.0 V Supply voltage for logic and LCD (+)
2 Vss 0 V Ground
3 V0 - Operating voltage for LCD (variable)
4 ~ 11 DB0 ~ DB7 H/L Data bit 0~7
12 CS1 L Chip select signal for IC1
13 CS2 L Chip select signal for IC2
14 /RES L Reset signal
15 R/W H/L H: read (MUP< module),L: write (MPU >module)
16 D/I H/L H: data, L: instruction code
17 E H, H L Chip enable signal
18 VEE - Operating voltage for LCD (variable)
19 A 4.2 V Backlight power supply
20 K 0 V Backlight power supply
La mayora de los LCDs poseen internamente un generador de tensin negativa,
necesario para manejar los segmentos propiamente dichos. Para controlar el
contraste, es necesario usar un preset de 20 K, conectado entre VEE y VDD (en los
extremos) y la pata del medio a V0. Las patas A y K estn conectadas a un LED
interno, deberan ser conectadas a 5V y 0V correspondientemente, con una
resistencia de 100-200 en serie para asegurarse de que el LED est protegido. El
siguiente diagrama de la figura 2.18 muestra como alimentar el LCD y controlar el
contraste del mismo.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
61/126
II. MARCO TEORICO
60
Figura 2.18Configuracin para Alimentar el GLCD 128X64
2.7 Sensor De Corriente. Descripcin
El sensor de corriente es un dispositivo capaz de detectar la presencia de corriente
elctrica (una lnea de alimentacin para el caso del sistema de control en estudio).
Una vez detectada dicha corriente, el sensor transforma la medida de corriente enuna tensin; la cual es proporcional y representativa de la primera. Luego, este
sensor enva esta seal representativa a su salida, la cual se emplear para enviar la
seal a la unidad de procesamiento, para su respectivo anlisis.
Para poder seleccionar el componente adecuado se emplearn cuadros
comparativos entre los posibles componentes que se pueden emplear. Los posibles
componentes que se pueden emplear se muestran en la tabla 3.
Tabla 2.7 Comparativa entre diferentes sensores de corriente.
Tipo de sensor Shunt decorriente
Transformadorde corriente
Bobina deRogowski
Sensor deEfecto Hall
Consumo de potencia Alto Bajo Bajo BajoVariacin de la salida
con respecto a laTemperatura
Medio Bajo Muy bajo Medio
Linealidad dentro delrango de medicin
Muybuena
Buena Buena Buena
Costo Muy bajo Medio Bajo Bajo
Problema de error dedesplazamiento Si No No Si
Problema desaturacine histresis
No No No Si
Aislamiento elctrico No Si No SiCapacidad de
medicin de altascorrientes
Muy mala Buena Buena Buena
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
62/126
II. MARCO TEORICO
61
Con la informacin del cuadro se podra concluir que la opcin que se elegira sera
la del sensor bobina de Rogowski. Sin embargo, no se encontr una fuente que
proporcionara informacin completa y pertinente acerca de las caractersticas que
podra poseer un dispositivo de este tipo (por ejemplo, una hoja tcnica de uno quese venda en el mercado), ya que, en todos los documentos encontrados, la propia
persona realizaba la construccin de esta bobina. Por esta razn, se descart esta
tecnologa.
Otra posible tecnologa a emplear era el transformador de corriente. Sin
embargo, la desventaja que presenta es que podra introducir ruido al sistema. Por
otro lado, los sensores de efecto Hall resultan ser tambin muy buenos para
emplearse en este tipo de mediciones, ya que en el mercado se pueden encontrarsensores de este tipo que poseen internamente elementos que minimizan las
desventajas que comnmente presentan (las que se mostraron en la tabla). Un
ejemplo de ello es el sensorACS712 de Allegro MicroSystems.
Este sensor, como se mencion, contiene elementos que minimizan las
desventajas que poseera uno tpico de este tipo, y a un bajo precio. Por ello, se
concluye que esta tecnologa sera mejor que la del transformador de corriente, ya
que posee un bajo precio, no introduce ruido y minimiza sus desventajas. En
consecuencia, se escogi para el diseo del sistema a este sensor, el cual ser
descrito a continuacin.
2.7.1 Caractersticas Del Sensor De Corriente ACS712
Enseguida se muestran algunas de las principales caractersticas de nuestro sensor
de corriente:
Provee de una econmica y precisa solucin para realizar mediciones de
corriente elctrica alterna, ya que presenta un bajo costo.
Su presentacin es un circuito integrado, el cual ocupa un espacio bien
reducido.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
63/126
II. MARCO TEORICO
62
No requiere de una resistencia externa para realizar la medicin, simplemente
se coloca la lnea de paso de la corriente por los pines indicados.
Presenta un rango de medicin ptima de hasta 30 amperios alternos, el cual
es un rango suficiente para el lmite de consumo que tiene el sistema decontrol.
Presenta una sensibilidad de 185mV/A, por lo que se tiene un valor de voltaje
de salida menor a 1 voltio continuo en el peor caso (cuando se consume mil
vatios). Gracias a ello, esta salida se podra conectar directamente a la
entrada del siguiente elemento del sistema (la unidad de procesamiento), ya
que se tiene una seal adecuada (un voltaje entre cero y cinco voltios).
Posee en uno de sus pines la posibilidad de implementar un filtro pasabajos,con la finalidad de eliminar el ruido, pero sin provocar una indeseable
atenuacin en su salida, la cual se producira si se implementara dicho filtro en
el pin de salida directamente.
Presenta una etapa para minimizar el error de desplazamiento indeseado y
una etapa que se llama tcnica de estabilizacin por interruptores, las cuales
logran producir un preciso y proporcional voltaje de salida.
El diagrama de bloques de la figura 2.19 de este sensor se muestra a continuacin:
Figura 2.19 Diagrama de bloques funcional del sensor de corriente ACS712.
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
64/126
III. DESARROLLO
63
CAPTULO III
DESARROLLO
-
8/12/2019 Sistema de Monitoreo Inalambrico de Consumo Electrico Con Microcontrolador
65/126
III. DESARROLLO
64
CAPITULO III. DESARROLLO
En este captulo se detalla el procedimiento que sirvi para poder implementar este
proyecto, mostrando los aspectos fundamentales as como las pruebas llevadas acabo que fueron base de la experimentacin y objeto de mejora para la innovacin
de este sistema inalmbrico.
Inicialmente se pens en un sistema completamente autnomo capaz de
monitorear inalmbricamente el consumo elctrico de cualquier dispositivo
electrnico conectado a la red domstica, capaz de almacenar informacin y poderla
proyectar de manera fcil y sencilla. As como poder observar estos datos de manera
remota y local. Enseguida plasmare el procedimiento que nos llev a crear unsistema tal como se plante y se requiri.
3.1 Diseo de la lgica de programacin del PIC16F877A
La implementacin de un microcontrolador como lo es el PIC16F877A fue pensado
para crear un sistema de transmisin sencillo, econmico y verstil. Este tipo de
microcontroladores tiene caractersticas que fundamentalmente se basan en un
convertidor