En esta oportunidad me he propuesto medir el consumo eléctrico de toda mi casa para realizar estimaciones comparativas con el cobro de mi factura de energía y analizar.
En esta ocasión utilizare la plataforma IoT Ubidots en su versión Industrial, anteriormente habíamos realizado pruebas con la versión educacional, pero esta versión industrial cuenta características especiales para análisis de datos y mas dinamismo visual permitiendo crear dashboards muy dinámicos.
Pruebas anteriores con Ubidots : Medidor PZEM-004 + ESP8266 & Plataforma IoT Ubidots Educacional
Utilizare un medidor PZEM-004T de PeaceFair y un Modulos ESP32 (ESP-WROOM-32) FireBeetle de la tienda online DFRobot.
Recomendación: mas abajo podrán ver datos en tiempo real
Advertencia
Antes de iniciar recomiendo tener mucha precaución referente a conexiones o montajes eléctricos, si no tiene suficientes conocimientos de Electricidad por favor no lo intente.
Video 1 # Measurement Electrical Consumption with Ubidots Industrial & ESP32 + PZEM-004T
Crear cuenta en Ubidots Industrial
En pocos segundos he creado una cuenta de prueba en Ubidots industrial.
Pagina Oficial : ubidots.com
Ubidots Industrial
A diferencia de la versión Educacional, la versión Industrial cuenta con mas características que facilitan no solo la visualización información también el análisis y procesamiento de datos, mejor agrupación para aplicaciones de cientos de dispositivos, a continuación mencionare algunas de las características de la plataforma:
- Listado de tabla en devices: Un mejor diseño para poder administrar miles de dispositivos
- Device types: Es como una plantilla para dispositivos, en donde defines variables y propiedades para aplicar cada vez que se cree un nuevo dispositivo
- Device groups: Posibilidad de agrupar dispositivos para acciones en bache
- Global events: Posibilidad de crear un evento que aplique a un grupo de dispositivos entero
- Dashboards nuevos: Dashboards rediseñados, con date picker a nivel de dashboard y no a nivel de widget individual.
- Dashboards dinámicos: Posibilidad de tener un device drop down por dashboard y, al cambiarlo, se actualizan todos los widgets.
- Alerta de llamada por voz
La versión industrial permitiría fácilmente diseñar solución o aplicaciones en agricultura, fabricación automatizada, educación, salud, automatización de hogares, procesos de manifactura y ciudades inteligentes.
Pruebas Realizadas
El objetivo de estas pruebas es realizar el registro de mediciones de consumo eléctrico de manera ininterrumpida de mi casa y tener una referencia aproximada o estimada en costos.
Simplemente deseo comparar mis mediciones, calcular costos y comparar con la facturación local y observar realmente cuanto consumen los electrodomésticos y de paso generar un poco de conciencia en el proceso.
El costo de kilovatio-hora en mi ciudad o zona es en mi caso $514 COP o 0.16 USD aproximadamente, por ahora simplemente multiplicare el los $514 COP por los kWh del medidor, mas adelante podría calcular el costo hora a hora, día, semana y mes.
Hay que ser realista una casa no consume demasiado comparado con la industria donde esta aplicación si tendría buenos resultados, con Ubidots industrial podrían registrar 500 maquinas con un medidor cada una sin problemas.
Materiales y donde comprarlos muy baratos!!
- Medidor PZEM 004 con display
- Medidor PZEM 004T & Medidores Trifasicos
- ESP32 FireBeatle DFRobot
- Transformador de Corriente CT 0-100 Amperios
- Protoboard 8.5 x 5.5cm 400 Puntos – Banggood
- Carcaza Plastica tipo Raspberry Pi (Opcional)
- Fuente 5v 2A
Otros equipos recomendados para próximas pruebas
- Medidor PZEM-016 Modbus RS485
- Modulo LoRa RFM95/RFM95W 915 mHz
- Transformador de corriete nucleo partido
- Medidores de Consumo electrico Monofasico – Por pulsos
- Tranformadores de Voltaje para Aislamiento
- MPPT Controlador Regulador para panel Solar
Recomendación: Para una explicación mas detallada paso a paso recomiendo ver el vídeo completo 1# Measurement Electrical Consumption with Ubidots Industrial & ESP32 + PZEM-004T disponible en nuestro canal de Youtube PDAControl.
Protocolo HTTP o HTTPS
Hemos utilizado este protocolo desde hace mucho tiempo en aplicaciones anteriores, técnicamente cualquier dispositivos con capacidad TCP/IP puede aplicar para su uso, es uno de los protocolos mas utilizados para aplicaciones IoT, Ubidots tiene una documentación muy detallada incluyendo ejemplo y aplicaciones para Bash, ESP, Arduino y Python.
Recomendación: mas abajo podrán ver datos en tiempo real
Tutorial Recomendado: Medidor PZEM-004T con Arduino ESP32 ESP8266 Python & Raspberry Pi
Medidor PZEM-004T con Arduino ESP32 ESP8266 Python & Raspberry Pi
Codigo Arduino IDE
El ejemplo original lo he tomado directamente de la documentación de la API HTTP de Ubidots, lo he adaptado a los módulos ESP32 y he adicionado las funciones para lectura del Medidor marca PeaceFair con ayuda de las Librerías PZEM-004T creadas por olehs, a continuación indicare algunas características del código en cuestión:
- Lectura de medidores PZEM-004 y PZEM-004T (Voltaje , Amperios, Potencia, Energía)
- Lectura de temperatura interna de modulo ESP32
- Lectura de indicador de fuerza de señal recibida o RSSI
- Alerta booleana por falla en comunicación con medidor.
- Re-conexión de conexión con Wifi cada 5 minutos
- Recomendado: Ejemplos API Hardware HTTP Ubidots
El dispositivo en Ubidots
Conexiones
Nota: el medidor requiere una modificación para funcionar a 3.3V adicionando una resistencia documentación completa: Medidor PZEM-004T con Arduino ESP32 ESP8266 Python & Raspberry Pi
Recomendación: Para una explicación mas detallada paso a paso recomiendo ver el vídeo completo 1# Measurement Electrical Consumption with Ubidots Industrial & ESP32 + PZEM-004T disponible en nuestro canal de Youtube PDAControl.
Montaje Eléctrico
Esta es una parte de mucho riesgo, en mi caso el suministro eléctrico llega a este tablero que realiza la distribución por toda la casa, facilitando el montaje del Transformador de corriente «CT», previamente con un multimetro y/o pinza amperimetrica he realizado las mediciones de Voltaje y Corriente, para lo cual he determinado un «CT» de 100A.
El transformador de corriente es de núcleo partido, facilita su instalación, de debe colocar en la fase «L».
No es necesario medir exactamente el Voltaje en mi caso 120VAC del mismo tablero, yo he elegido medir voltaje en un toma corriente normal, lo cual no afecta la medición y facilita el montaje.
Nota: Si piensa en replicar esta aplicación, tenga en cuenta que se requieren conocimientos sobre electricidad si no posee el conocimiento por favor no arriesgarse.
Recomendación: mas abajo podrán ver datos en tiempo real .
Diseño de Dashboard
Modificar Widgets
Ubidots cuenta con Widgets especiales que permiten personalización de ciertos atributos en los diseños, con gran ayuda de lenguajes tales como HTML CCS y Javascript .
He diseñado inicialmente un dashboard básico inicialmente.
Ciertos Widgets como en este caso Metric.
Permiten a través de editores de código HTML CCS y Javascript embebidos en el Widget podemos realizar algunas mejoras, presionar el botón open editor.
Modificaciones de estilos con ayuda de CCS, podemos modificar tipo de letra tamaño, color entre muchas características.
He cambiado las fuentes o el tipo de letra, he utilizado Chakra Petch de Google Fonts len da un poco de caracter al diseño.
Recomendación: Para una explicación mas detallada paso a paso recomiendo ver el vídeo completo 1# Measurement Electrical Consumption with Ubidots Industrial & ESP32 + PZEM-004T disponible en nuestro canal de Youtube PDAControl.
Diseñar Widgets desde Cero
Otro Widget que tiene gran funcionalidad es HTML canvas, permite crear desde cero Widgets, claro con ayuda de código HTML CCS y Javascript
Ubidots no cuenta con Widgets para captura de datos, pero con HTML canvas puedes diseñar un pequeño formulario que almacene el valor en una variable «RAW», en mi caso tome este ejemplo de Ubidots: HTML Canvas Widget Examples y aplique un poco de Bootstrap
- Widget Creado, para captura de datos
Dashboard Final
Técnicamente hasta el momento puedo modificar el precio de kWh y lo multiplico por los kWh leidos del medidor, es solo el inicio.
Ver dashboard públicamente en este enlace : Ubidots-pdacontrol
Valores de Dashboard en Tiempo Real
Los siguientes widgets se han embebido directamente desde Ubidots, si detallan unos segundos podrán ver el cambio en tiempo real.
Ver dashboard públicamente en este enlace : Ubidots-pdacontrol
Conclusiones
Algunas características visuales son notables como pueden observar, fue un gran acierto crear ese widget que permite codigo HTML CCS y Javascript.
Confieso no soy desarrollador web , todo lo que he aprendido sobre HTML CSS y Javascript técnicamente es empírico con colaboración de colegas y gran ayuda de Google he aprendido un poco de todo, con todo esto digo que cualquier persona puede diseñar estos dashboard.
Es muy útil la creación de variables tipo «RAW» y «Synthetics».
Las variables tipo Synthetics me permitieron realizar el calculo de conversión kWh a COP «Pesos Colombianos» y conversión kWh a USD «Dolares Americanos».
El medidor envia Vatios y Watios por hora con variables tipo Synthetics, realizo la conversion de W a kW y Wh a kWh
Las variables tipo»RAW» la utilice para almacenar el valor de un 1kWh = 514 COP en «Pesos colombianos» o 0.16 USD.
Aun falta realizar mas cosas tales como :
- calculo de consumo día a día.
- calculo de consumo semana a semana.
- calculo de consumo mes a mes.
- o en intervalos definidos.
Ubidots tiene muchas características que aun no he explorado tales como Analytics Types y Funtions.
Por ultimo gracias a Bangood por el medidor PZEM-004T y DFRobot por el ESP32 FireBeetle y gracias a Ubidots.com
Descargas
- Librerias PZEM-004T by Olehs
- Ejemplos API Hardware HTTP Ubidots
- Ejemplo ESP32-PZEM-004-Ubidots para Arduino IDE