Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema Domestico de Monitorizacion Del Consumo Electrico PDF
Sistema Domestico de Monitorizacion Del Consumo Electrico PDF
C E R T I F I C A
Palabras clave
Keywords
Capítulo 1. Introducción 7
1.1 Descripción del contexto 7
1.1.1 La eficiencia energética 7
1.1.2 Los microcontroladores 8
1.2 Objetivos 10
1.3 Contenido de la memoria 10
Capítulo 3. Diseño 21
3.1 Requisitos del proyecto 21
3.1.1 Requisitos funcionales 21
3.1.2 Requisitos no funcionales 22
3.2 Diseño del sistema 23
3.3 Comunicaciones del sistema 24
3.3.1 Comunicación física 25
3.3.2 Comunicación lógica 25
3.4 Diseño electrónico 26
3.4.1 Arduino 26
3.4.2 Transformador de corriente 27
3.4.3 Sensor de corriente 28
3.4.4 Módulo wifi 29
3.4.5 Flujo de comportamiento 30
3.5 Diseño de plataforma web 31
3.5.1 Flujo de acceso a la aplicación 31
3.5.2 Acceso y registro 32
3.5.3 Panel de control 33
3.5.4 Dispositivos 34
I
3.5.5 Histórico 35
3.5.6 Configuración 36
3.6 Modelo de datos 37
Capítulo 4. Implementación 39
4.1 Hardware del prototipo 39
4.1.1 Corriente generada por el sensor 39
4.1.2 Regulador de voltaje 5V a 3.3V 42
4.1.3 Pulsador de configuración de Wifly 43
4.1.4 Montaje del prototipo 44
4.1.5 Firmware del prototipo 44
4.1.6 Programación del microcontrolador 50
4.1.7 Pruebas del prototipo 50
4.2 Plataforma web 52
4.2.1 Menú 53
4.2.2 Pantalla de acceso y registro 54
4.2.3 Pantalla de panel de control 55
4.2.4 Pantalla de dispositivos 57
4.2.5 Pantalla de histórico 58
4.2.6 Pantalla de configuración 59
Capítulo 7. Presupuesto 65
7.1 Presupuesto del prototipo 65
7.2 Presupuesto de la plataforma 65
Apéndice A: Microcontrolador 67
A.1. Código del microcontrolador 67
II
Apéndice C: Base de Datos 68
C.1. Código SQL: Tabla usuario 68
C.2. Código SQL: Tabla dispositivos 69
C.3. Código SQL: Tabla registros 69
C.4. Código SQL: Tabla zona_horaria 69
Capítulo 8. Bibliografía 72
III
Índice de figuras
Figura 2.1. Plataforma de hardware libre Arduino Uno. 12
Figura 2.2. Raspberry Pi, PC de placa reducida. 13
Figura 2.3. Engage Hub Kit (Efergy). 15
Figura 2.4. Esquema de dispositivos Engage Hub Kit 15
Figura 2.5. Pack Wattio Energy (Wattio). 16
Figura 2.6. OpenEnergyMonitor. 17
Figura 3.1. Diseño del sistema. 23
Figura 3.2. Esquema de comunicaciones. 24
Figura 3.3. Comunicación física del sistema. 25
Figura 3.4. Comunicación lógica de los datos. 25
Figura 3.5. Arduino Mini Pro 3.3V 26
Figura 3.6. Transformador 220-5v, 2A. 27
Figura 3.7. Sensor SCT-013-000 28
Figura 3.8. Módulo WiFly RN-XV. 29
Figura 3.9. Diagrama de flujo algoritmo. 30
Figura 3.10. Diseño pantalla acceso y registro. 32
Figura 3.11. Diseño pantalla panel de control. 33
Figura 3.12. Diseño pantalla dispositivos. 34
Figura 3.13. Diseño pantalla histórico. 35
Figura 3.14. Diseño pantalla configuración 36
Figura 3.15. Diseño diagrama de base de datos. 38
Figura 4.1. Esquema resistencia de carga. 41
Figura 4.2. Esquema circuito divisor de voltaje. 42
Figura 4.3. Regulador de voltaje. 42
Figura 4.4. Imagen pulsador de configuración. 43
Figura 4.5. Imagen del prototipo. 44
Figura 4.6. Programación del microcontrolador. 50
Figura 4.7. Prueba de testeo en puerto serie. 51
Figura 4.8. Prueba de consulta a la BBDD. 51
Figura 4.9. Estructura de ficheros. 52
Figura 4.10. Pantalla menú. 53
IV
Figura 4.11. Pantalla acceso y registro. 54
Figura 4.12. Pantalla panel de control. 55
Figura 4.13. Pantalla de panel de control Móvil. 56
Figura 4.14. Pantalla de dispositivos. 57
Figura 4.15. Pantalla de histórico. 58
Figura 4.16. Pantalla de configuración. 59
V
Índice de tablas
Tabla 3.1. Características Arduino Mini Pro 3.3V. 27
Tabla 3.2. Características transformador de corriente.
27
Tabla 3.3. Características sensor de corriente. 28
Tabla 3.4. Características módulo wifi. 29
VI
Capítulo 1. Introducción
7
Las tecnologías de eficiencia energética se pueden
encontrar en todos los procesos de transformación de la
energía: desde la exploración y producción de recursos
energéticos primarios, hasta la generación de energía y
refinamiento del petróleo, las redes de electricidad y
la utilización final en la industria, los edificios y
el transporte. Pero, no es sólo el potencial técnico,
el cual es crucial para la exitosa introducción de las
tecnologías de energía eficiente. Para evaluar el
potencial completo de estas tecnologías e identificar
el camino hacia su introducción con éxito en el
mercado, es necesario tener en cuenta su potencial
económico, realizable y realista.
8
contadores, dispositivos de entrada / salida, etc. El
incremento posterior de la densidad de integración
permitió crear un circuito integrado que contenía tanto
al procesador como periféricos. Así es cómo fue
desarrollada la primera microcomputadora en un solo
chip, denominada más tarde microcontrolador.
9
con grandes comunidades en línea para ciertos
procesadores.
1.2 Objetivos
10
En el capitulo Estado del arte, se define la tecnología
actual, los productos basados en la misma idea y la
tecnología que se ha usado en el proyecto.
11
Capítulo 2. Estado del arte
12
tanto analógicos como digitales. El microcontrolador en
la placa Arduino se programa mediante el lenguaje de
programación Arduino (basado en Wiring) y el entorno de
desarrollo Arduino (basado en Processing).
13
2.2 Sistemas de monitorización de energía
14
Figura 2.3. Engage Hub Kit (Efergy).
15
2.2.2 Wattio, Pack Wattio Energy
16
2.2.3 OpenEnergyMonitor
17
2.3 Tecnología aplicada
18
2.3.2 Tecnología de Software
19
Para comunicar la configuración y los registros de
sensores con la base de datos, se ha desarrollado un
servicio web en PHP al que se conecta el módulo wifi y
envía o recibe peticiones. Este servicio web autentica
en el envío de datos, comprobando que la MAC del
dispositivo corresponde con la MAC dada de alta en la
plataforma, para evitar que se puedan añadir registros
desde cualquier otra petición.
20
Capítulo 3. Diseño
21
5. Configuración de la cuenta: El usuario podrá
personalizar en su cuenta el nombre de usuario,
contraseña.
22
6. Rendimiento y escalabilidad: El sistema
tendrá un óptimo rendimiento y será escalable con
nuevos firmwares y módulos.
Router
Monitor de energía
Sensor
INTERNET
Plataforma Web
23
3.3 Comunicaciones del sistema
SENSOR 1
SENSOR 2 MÓDULO
ARDUINO
WIFI
SENSOR 6
Internet
24
3.3.1 Comunicación física
TX RX
Señal analógica
RX TX
MODULO
SENSOR ARDUINO
WIFI
(+)
(-)
Alimentación
TRANSFO
RMADOR
Figura 3.3. Comunicación física del sistema.
HTTP POST
MODULO
WIFI INTERNET
webservice.php
(MVC) + PHP
25
3.4 Diseño electrónico
3.4.1 Arduino
Especificaciones técnicas:
Característica Valor
Modelo Mini Pro 3.3V
Microcontrolador ATmega168
Voltaje 3.3V
Voltaje entrada 3.3V – 12V
Entradas/Salidas digitales 14 (de las cuales 6 PWM)
Entradas analógicas 8
Corriente máxima por
40mA
entrada/salida
26
Memoria flash 16Kb
SRAM 1Kb
EEPROM 512 bytes
Velocidad de reloj 8Mhz
Especificaciones técnicas:
Característica Valor
Tipo transformador AC-DC
Voltaje entrada 220V
Voltaje salida 5V
Corriente de salida 2A
27
3.4.3 Sensor de corriente
Especificaciones técnicas:
Característica Valor
Modelo SCT-013-000
Tensión de entrada 0-100A
Voltaje salida 0-50mV
Resistencia de carga (incluida) 62 Ohm
No linealidad ±1%
28
3.4.4 Módulo wifi
Especificaciones técnicas:
Característica Valor
Modelo WiFly RN-XV
Radio 802.11b/g
Consumo en espera 4uA
Consumo recepción 30mA
Consumo transmisión 130 – 185mA
29
3.4.5 Flujo de comportamiento
Inicio ¿Envío No
Si
recibido?
¿Conexión No
internet? Enviar datos a
servicio Web
Si Si
¿Existe ¿Existen
No No
cuenta con cambios en
disp. ID? lectura?
Si
Intervalo
Obtener
de Leer sensores
configuración
tiempo
30
obtener la configuración del intervalo de tiempo
asignado por el usuario. Una vez obtenida la
configuración, comenzará un bucle en el cual, cada vez
que se cumple el intervalo de tiempo, lee los sensores
de corriente y comprueba que existen cambios en la
lectura, si no existen, volverá al intervalo de tiempo,
con el fin de evitar excesivos registros en la base de
datos. Si existen cambios, se conecta al servicio web y
envía los registros. Si los registros no son enviados
satisfactoriamente, vuelve a intentar enviarlos con el
fin de evitar perder datos en una interrupción de la
comunicación wifi. Si los datos se envían
correctamente, vuelve a comenzar el bucle en el
intervalo de tiempo.
INICIO
Registrarse
Introducir usuario
Acceso a la
¿Usuario No plataforma
correcto?
Si
31
3.5.2 Acceso y registro
32
3.5.3 Panel de control
33
3.5.4 Dispositivos
34
3.5.5 Histórico
35
3.5.6 Configuración
36
3.6 Modelo de datos
37
Diagrama de estructura de la base de datos:
38
Capítulo 4. Implementación
39
de 100A AC, corriente máxima que puede manejar el
sensor.
40
Puesto que 23.33 Ohm no es un valor común de
resistencia se ha de elegir la más próxima, en este
caso 22 Ohm.
41
Figura 4.2. Esquema circuito divisor de voltaje.
42
4.1.3 Pulsador de configuración de Wifly
43
4.1.4 Montaje del prototipo
44
Se han desarrollado cuatro funciones principales,
“setupemonitor” configura e inicializa el módulo Wifly
para poder operar con él. “readPower” calcula la
potencia con intensidad que ha sido calculada del
sensor. “calcIrms” realiza la lectura y los cálculos de
la intensidad. “postPower” se comunica con el Wifly
para consumir el servicio web y subir los datos.
a)Función “setupwifly”
void setupwifly(){
serialFly.begin(9600);
WiFly.setUart(&serialFly);
delay(500);
Serial.println("Inicializando...");
delay(6000);
serialFly.flush();
Serial.println("$$$");
serialFly.print("$$$"); delay(250); check();
serialFly.println();
Serial.println("set com remote 0\r");
serialFly.print("set com remote 0\r"); check();
Serial.println("get mac\r");
serialFly.print("get mac\r");
getMac();
Serial.print("MAC -> ");
Serial.println(cmac);
serialFly.print("exit\r");
delay(2000);
45
}
b) Función “readPower”
void readPower(){
c) Función “calcIrms”
46
alimentación del procesador (en este caso 3,3 V), que
se utiliza como referencia, y se escala de manera que
la tensión de referencia dará el número máximo de 210
(1024).
filteredI=0.996*(lastFilteredI+sampleI-
lastSampleI);
47
voltaje de referencia (3.3V) y el número de bits 1024
del dominio digital:
double I_RATIO = ICAL *((SUPPLYVOLTAGE/1000.0) /
(ADC_COUNTS));
48
d) Función “postPower”
Serial.println("Intentando conectar...");
Serial.println(data);
if (client.connect()) {
client.println("POST /data/set_registro.php
HTTP/1.1");
client.println("Host: 192.168.1.34");
client.println("User-Agent: Arduino/1.0");
client.println("Connection: close");
client.println("Content-Type: application/x-
www-form-urlencoded;");
client.print("Content-Length: ");
client.println(data.length());
client.println();
client.println(data);
Serial.println("-> Datos enviados <-");
client.stop();
} else {
Serial.println("--> FALLO CONEXION <----");
}
}
49
4.1.6 Programación del microcontrolador
50
Figura 4.7. Prueba de testeo en puerto serie.
51
4.2 Plataforma web
52
4.2.1 Menú
53
4.2.2 Pantalla de acceso y registro
54
4.2.3 Pantalla de panel de control
55
El framework Bootstrap hace que los diseños sean
adaptativos de manera se pueda ver la plataforma en
cualquier dispositivo, adaptándose a la resolución de
pantalla.
56
4.2.4 Pantalla de dispositivos
57
4.2.5 Pantalla de histórico
58
4.2.6 Pantalla de configuración
59
Capítulo 5. Conclusiones y Trabajos
Futuros
5.1 Conclusiones
60
Destacamos que como todo proyecto, ha tenido sus
dificultades, las cuales han sido solventadas por medio
de la investigación en el campo que las compete siendo
esto, un éxito personal en el avance de la formación
académica y profesional.
61
62
Capítulo 6. Conclusions and future work
6.1 Conclusions
63
in the field that falls this being, personal success in
the advancement of academic and vocational training.
64
Capítulo 7. Presupuesto
TOTAL 79,95
65
66
Apéndice A: Microcontrolador
void loop() {
readPower();
postPower(powers[0],powers[1],powers[2],powers[3],powers[4]);
delay(2000);
}
if (!empty($_POST)) {
$con = mysqli_connect("localhost","root","123456","test");
// Se comprueba la conexión con la BBDD
if (mysqli_connect_errno())
echo "Failed to connect to MySQL: " .
mysqli_connect_error();
else
if (auth($con)){
insert_reg($con);
}
67
.$_POST["reg1"]."','".$_POST["reg2"]."','".$_POST["reg3"]."',
'".$_POST["reg4"]."','".$_POST["reg5"]."','".$register[6]."','".$re
gister[7]."','".$register[8]."')";
if (!mysqli_query($con, $sql)){
function auth($con){
$sql_auth="SELECT * FROM `dispositivos` WHERE `
‘dispositivoId` = '".$_POST["mac"]."'";
if ($result = mysqli_query($con, $sql_auth)){
if (mysqli_num_rows($result)>0){
echo "Authenticated";
return true;
}
}
else{
die('Error auth: ' . mysqli_error());
return false;
}
}
68
`fecha_creacion` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fecha_ultimo_ac` TIMESTAMP NULL,
`activo` TINYINT(1) NULL,
`id_zona_horaria` INT NOT NULL)
69
Apéndice D: Plataforma web
D.1.Codigo Javascript
var energyApp = angular.module('energyapp',
['ngRoute','energyControllers']);
energyApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/panel', {
templateUrl: 'pages/panelcontrol.html',
controller: 'TestCtrl'
}).
when('/config', {
templateUrl: 'pages/configuracion.html',
controller: 'ConfigCtrl'
}).
when('/login', {
templateUrl: 'pages/login.html'
}).
when('/dispositivo', {
templateUrl: 'pages/dispositivos.html',
controller: 'DispositivosCtrl'
}).
when('/registro', {
templateUrl: 'pages/registro.html'
}).
when('/historico', {
templateUrl: 'pages/historico.html',
controller: 'HistoCtrl'
}).
otherwise({
redirectTo: '/pages/login'
});
}]);
70
71
Capítulo 8. Bibliografía
72