Páginas

martes, 22 de mayo de 2012

[Emb Comp Class] ARDUINO: Proyecto Final

Control de la Instalación Eléctrica y Medidor del Consumo Eléctrico

Material


General
  • Arduino UNO con su cable USB
  • Protoboard
  • Cables Jumper para las conexiones
  • Cable de cobre delgado para realizar las conexiones en la protoboard

Para el control de la instalación eléctrica
  • 5 Resistencias 330 Ohms
  • 4 push buttons
  • 2 leds blancos de alta luminosidad
  • 2 Relevadores compatibles con Arduino [instrucciones de armado: AQUI]
  • Contacto Duplex con tierra física, cubierta y caja protectora
  • Extensión eléctrica o cable de cobre
  • Lamparita de noche o cualquier otro dispositivo electrico para probar.

Para el sistema de medición (REFERENCIA How to build an Arduino Energy Monitor)
  • Arduino Ethernet Shield
  • Para la medición del voltaje
    • Transformador de corriente alterna 120V - 9V (o un adaptador de corriente AC-AC con salida de 9V)
    • 1 resistencia de 100 KOhms
    • 2 resistencias de 10 KOhms
    • 1 capacitor de 10 uF
  • Para la medición de la corriente
    • Sensor CT SCT-013-000
    • Burden Resistor (resistencia de 33 Ohms)
    • 2 resistencias de 10 KOhms
    • 1 capacitor de 10 uF
    • 1 jack 3.5mm hembra

Advertencias y consideraciones previas

  • Se trabajara con corriente alterna, se recomienda utilizar no conectar ningun componente a la misma hasta terminar el armado
  • Es importante tener un multimetro a la mano, nos ayudara a realizar correctamente nuestras conexiones y verificar que funcionen correctamente antes de conectarlas a la corriente alterna.

Armado para la el control de la instalación eléctrica


Vamos primero con lo mas simple, armemos el contacto duplex de tal forma que simulemos la instalación eléctrica de la casa, es algo complejo explicarlo, pero es algo básico y super fácil que todos podemos hacer, así que mejor les dejo un esquema:

Y estas son las fotos de como yo arme mi contacto duplex



Por si no recuerdan como conectar correctamente los relevadores, aqui les dejo las entradas y salidas correspondientes.

Para las entradas del relevador (son 3 inputs)


  • Arduino 5V: Es la salida regulada (5V) que nos proporciona nuestro Arduino
  • Arduino Digital Out: Esta conectada al pin desde el cual enviaremos la señal
  • Arduino GND: Es la tierra (GND) que proporciona nuestro Arduino


Para las entradas del relevador de corriente alterna:



  • AC/DC Input: Es el cable ya sea de corriente alterna o directa de donde entra el voltaje
  • Sin usar: Por seguridad para cuando usemos corriente alterna, se deja sin usar para separar la corriente y evitar un arco y provocar algun corto circuito
  • AC/DC Output: Es el cable por el que continuara circulando la corriente una vez que el relevador cierre el circuito

Después hay que conectar nuestros relevadores al arduino, para ello prepare el siguiente esquema en Fritzing:



Armado para la el control de la iluminación


Ahora continuamos con el control de la iluminación, para ello utilizaremos 2 entradas, una para aumentar la luminosidad de los leds y otra para bajarla; además de una salida regulada. Esquema en fritzing:



La idea es combinar ambos sistemas, para tener todo en uno solo, así se ven ambos sistemas conectados:


Armado para la el sistema de medición


Primero preparamos las conexiones en nuestro protoboard siguiendo el esquema que les adjunto:

Tomado de OpenEnergyMonitor URL=http://openenergymonitor.org/emon/buildingblocks/how-to-build-an-arduino-energy-monitor


Tomado de OpenEnergyMonitor URL=http://openenergymonitor.org/emon/buildingblocks/measuring-voltage-with-an-acac-power-adapter


Conectaremos la entrada de nuestro transformador a la corriente alterna y la salida (9V-300mA) a la protoboard,



Tomado de OpenEnergyMonitor URL=http://openenergymonitor.org/emon/buildingblocks/ct-sensors-interface


Para conectar el CT a la protoboard utilizaremos un jack 3.5mm hembra, conectaremos solamente el positivo (cabeza o tap) y la tierra (brazo o sleeve).



Con esto vamos a construir un monitor de energía electrica simple que se puede utilizar para medir la cantidad de energía eléctrica que utiliza en una casa. Se mide la tensión con el transformador 120V-9V y la corriente con el sensor CT.

El monitor de energía se puede calcular la potencia real, potencia aparente, factor de potencia, voltaje rms, corriente eficaz. Todos los cálculos se hacen en el Arduino.

Los datos son enviados al servidor por medio de un shield Arduino Ethernet y son recogidos para su posterior procesamiento.

OpenEnergyMonitor es el proyecto en el que base, valga la redundancia, mi proyecto. OpenEnergyMonitor se compone de diversos módulos, en este caso el hardware EmonTX, para el Arduino la librería que realiza los cálculos EmonLib, y un servidor que se encarga de graficar los datos de salida del Arduino EmonCMS

Toda la teoría la podemos encontrar en esta página: http://openenergymonitor.org/emon/buildingblocks.
En ella se explican de forma bastante detallada los conceptos necesarios para comprender el funcionamiento del monitor de energía.

Este es todo el circuito, los 3 modulos montados en la protoboard



Código

Video





Referencias

15 comentarios:

  1. que tal Juan Carlos.

    excelente proyecto, pero te tengo 2 preguntas.

    1) ¿para que usas los 2 reles? osea que utilidad les das

    2) ¿es posible ver unas graficas en la computadora del consumo en tiempo real?

    muchas gracias por tu tiempo y espero tu respuesta

    ResponderEliminar
    Respuestas
    1. Que tal Andres, gracias por visitar el blog.

      Respondiendo la primera pregunta, los relevadores sirven para abrir o cerrar el circuito de corriente alterna de manera remota utilizando el arduino y una interfaz móvil, de esta manera puedo apagar y encender algún electrodoméstico con un celular utilizando alguna conexión a internet.

      La segunda, claro que es posible, no había completado ese módulo para cuando realice el video pero si es posible tomar los datos y visualizarlos mediante gráficas en tiempo real.

      Saludos.

      Eliminar
  2. Hola, yo estoy haciendo algo parecido, es decir, el mide, y luego de que los datos pasan por la tarjeta arduino se transmiten por un modulo Bluetooth que se reciben en el PC y la interfaz que pienso usar en el PC es Labview, Pero me parece interesante lo de poder implementar lo de los reles, si tienes el esquema del circuito me gustaría revisarlos.
    Por otro lado tengo un problema en conseguir el sensor CT, no sabes si hay otra forma de hacer esa medición o de algún otro elemento que pueda usar.
    Gracias

    ResponderEliminar
    Respuestas
    1. Que tal, gracias por visitar el blog.
      El circuito para armar el relé esta en esta entrada http://jcecembmob.blogspot.com/2012/05/emb-comb-lab-arduino-trabajando-con.html

      Para el sensor CT lo conseguí aqui http://www.seeedstudio.com/depot/noninvasive-ac-current-sensor-100a-max-p-547.html

      En cuanto a otro sensor para medir la corriente no sabría decirte exactmente, posiblemente los Fluke current clamp pueden servir pero no se si tengan una interfaz que permitan conectarse a arduino o a la computadora, tambien los sensores llamados Non-Invasive Hall-Effect Current Sensor podrían servir.

      Saludos

      Eliminar
  3. Hola amigo mi proyecto es parecido al tuyo, Este se llama "Diseño de un analizador de calidad de energía", ahora por parte del sensor de corriente me resolviste el problema, y ahora una ayuda de tu parte, ¿tal ves tienes un proyecto de analizador de armónicos en arduino con la FFT o con la transformada discreta de Fourier?, es decir como calcular los armónicos de una señal analogica. Te agradecería muchiisimo.
    Mi objetivo es casar la gráfica y cada componente de una señal analógica

    ResponderEliminar
  4. hola necesito preguntarte cual seria la capacitacia del C1, no pude encontrarla.
    Gracias

    ResponderEliminar
  5. Hola Juan Carlos.
    No logro encontrar a buen precio el transformador de tipo AC/AC de 9v.¿Lo has construido? Lo único que veo cuesta entre 15€ y 25€....
    Gracias,
    Saludos.

    ResponderEliminar
    Respuestas
    1. Buen día Alejandro.
      Yo no he construído el transformador, lo conseguí a un buen precio (aproximadamente 6€).

      Hay varios tutoriales por ahí en la red, que se basan en la teoría de transformadores de la clase de Física, en ellos indican las formulas y materiales necesarios para fabricarlos. Hay que tomar en cuenta el diámetro del cable, el número de vueltas de los devanados (bien apretadas), y el voltaje y corriente de entrada y el que deseas de salida.

      Toma en cuenta también la relación costo/beneficio; construir y aislar correctamente el transformador para obtener el resultado deseado puede salir contraproducente, te recomiendo buscar un poco más y si no hay alternativa, adelante, constrúyelo y considéralo un plus para tu proyecto.

      Saludos.

      Eliminar
    2. Muchas gracias, miraré en la tienda de electrónica de barrio a ver qué me ofrecen.

      Por cierto para conseguir mayor precisión he pensado utilizar un sensor CT de 20A en lugar de 100A. Más concretamente uno del tipo "SCT-013-020" (http://www.ebay.es/itm/20A-SCT-013-020-Non-invasive-AC-current-sensor-Split-Core-Current-Transformer-/271551060092?hash=item3f39b4587c).

      Planeo monitorizar una instalación de menos de 4,6K watios por lo cual me sobra.

      ¿Debería hacer algún tipo de rectificación en el código fuente que ejecuta Arduino o es algo "transparente" al software?

      Eliminar
    3. Hola Alejandro.

      Sí tendrías que realizar los ajustes necesarios. En el código, la libreria EmonLib es la que se encarga de realizar los cálculos a partir de la lectura de los sensores, es un proyecto de código libre y aún le están dando soporte.

      Los valores que se mandan a los métodos emon1.current y emon1.voltage, en el setup del proyecto, son valores que ajustan la lecturas de los sensores. Y en las funciones emon1.calcIrms y emon.calcVI se realizan los calculos de corriente y voltaje.

      En la liga http://openenergymonitor.org/emon/buildingblocks explican la teoría detras de los cálculos, y cómo obtener esos valores para ajustar la lectura, dependiendo de la capacidad de tus sensores. Asimismo, te recomiendo tener una sesión de calibración apoyándote con un multímetro midiendo la corriente y voltaje de algún dispositivo conocido.

      Recuerda siempre que estarás trabajando con corriente alterna, asi que el multímetro deberá tener la capacidad de realizar estas lecturas, y tomar las precauciones necesarias.

      Saludos.

      Eliminar
    4. Gracias por tu respuesta Juan Carlos. En la web de Open Energy Monitor precisamente explican lo que yo pregunto. Cuando haga los cálculos los compartiré aquí.
      Tengo otra duda que espero me puedas resolver. Deseo realizar un diseño/montaje los más sencillo posible para luego ir incrementando la dificultad. Había pensado hacer algo como lo que tú has hecho (Arduino UNO R3 + Shield Ethernet) para la medición de energía y conectarlo con el cable de red a un RaspberryPi2 el cuál mediante WiFi trasmite la información al router inalámbrico y de ahí ya se suben los datos al servidor en la nube.
      ¿Cómo ves la idea de que sea un RaspPI quién reciba los datos directamente del medidor de energía? También quería saber si las mediciones recibidas en el Raspi pueden ser almacenadas cuando no haya conectividad a Internet y actualizadas cuando vuelva a estar disponible la transmisión de datos realizando un "batch upload masivo" (carga masiva que aporta los datos capturados y actualiza en el servicio CMS de Energy Monitor durante el tiempo que no ha sido realizado).
      No se si me explico bien. La idea es tener siempre conectado el sistema de lectura y captura de información pero que no sea imprescindible que siempre haya conectividad a Internet. Gracias y saludos.

      Eliminar
    5. Buen día Alejandro.

      El Ethernet Shield podría por sí solo subir los datos a la nube, si lo conectas directamente al router y le indicas la URL de alguna API que tengas disponible en un servidor de internet. Pero en este diseño hay un fallo grave, si la conexión de internet se cae o tu servidor deja de estar disponible, se perderán las lecturas de ese lapso de tiempo.

      Es por ello que opté por conectar el Ethernet Shield a mi computadora con un cable cruzado (cosa que olvidé mencionar). ¿Porqué cruzado? Porque así logré crear una red local entre Ethernet Shield y mi computadora (de ahí las IP 192.168.0.1 y 2), y alimentar directamente la API que estaba en mi computadora. Cable cruzado conecta dos dispositivos sin necesidad de un router. En tu caso será lo mismo, pero cambiando la computadora por una Raspberry PI. Ahora, el envío de la información desde el Ethernet Shield se puede hacer también usando el puerto USB del Arduino, pero tendrías que crear algún servicio en tu compuadora que lea la información desde el USB del Arduino y de ahí lo mande a la API para guardar la información. Aqui elegir el método de envío de los datos depende de cómo quieras tener tu arquitectura, ambos métodos se me hacen factibles, y ambos te permiten detectar si la conexión con el Arduino o el Ethernet Shield se ha caído y tomar las medidas necesarias.

      En este punto, tus datos ya están en la Raspberry, que funcionará como primer punto de almacenamiento. A partir de aquí ya puedes implementar un servicio que sincronize con la nube, y tener un almacenamiento que te servirá de histórico y eliminar los datos viejos de la Raspberry.

      ¿Cómo servir los datos? También depende de cómo quieras tener tu arquitectura. Puedes configurar la API de OpenEnergyMonitor en el Raspberry y que esta sea tu servidor principal y que tambien sincronice los datos con la nube, o puedes tener una API hecha por ti sólo para almacenarlos localmente, después sincronizar con la nube, y configurar la API de OpenEnergyMonitor en un servidor externo que consuma los datos desde la nube y de ahí tener el sitio donde los vas a visualizar.

      Al momento que realicé mi proyecto, el tema de la nube no estaba muy extendido y no lo tomé en cuenta, pero ahora tienes más herramientas para que tu proyecto sea más completo, así como tecnologías que te ayudarán a lograr lo que te propongas.

      Saludos.

      Eliminar