En esta ocasión retomaremos un proyecto interesante, la medición de consumo electrico en de modo invasivo con un Medidor Monofasico marca CHINT DDS666, técnicamente es un medidor domiciliario o residencial que ya hemos presentado en tutoriales anteriores, por fin terminare lo que inicie hace mas de un año:
Advertencia: Se recomienda precaución dado que este proyecto implica riesgo eléctrico o electrocucion dado que se utilizan equipos conectados 110 VAC -120 VAC, se requieren conocimientos ya sean básicos por favor documentarse previamente al respecto.
En los siguientes video-tutoriales se explicara la conexión de potencia del medidor:
- Power Consumption Measurement – Medicion Consumo Electrico Part 1 Chint DS666:
- Power Consumption Measurement – Medicion Consumo Electrico Part 2 Chint DS666:
Tutorial recomendado: Medidor electrico monofasico bifilar electronico CHINT DDS666
Medidor electrico monofasico bifilar electronico CHINT DSS666
Desde hace mucho tengo este medidor y con ayuda de un ESP8266 y/o arduino realizaremos la medición de Potencia Activa, Como carga utilizaremos una bombilla de 45W, para tener una carga fija que representara un «hogar».
Este medidor cuenta con 2 características.
- Es invasivo «se debe abrir el circuito colocar en serie entre la fuente y la carga»
- No cuenta con un un protocolo de comunicación serial, solo una salida de pulsos relacion 3200imp/kwh.
Calculo Consumo Eléctrico
Este medidor cuenta con un sistema de medicion con un SHUNT o resistencia electrica muy baja, este medidor cuenta con una relacion de 3200 impulsos por kwh «kilovatios/hora», esta relacion varia segun el tipo de medidor.
El medidor tiene 2 terminales (11+) (12-) asignados a una salida optoacoplada «aislada» que se activa generando pulsos, dichos pulsos van generados en relacion 3200imp/kwh (para este medidor), con los cuales calcularemos el consumo instantaneo.
Materiales y Donde Comprar Baratos!!
- Medidor Monofasico CHINT DDS666 U otro medidor que genere pulsos.
- ESP8266 12E
- Arduino Nano Clone
- Fuente 5v
- Matrix led x4 MAX7912
- Protoboard 830 puntos
- Optoacoplador 4n25
Nota: Tecnicamente deberia funcionar con cualquier medidor el único requisito es que tenga un factor de integracion similar (3200imp/kwh) ejemplo 1000imp/kwh.
Pruebas Chint DS666 & ESP8266 NodeMCU
El medidor solo cuenta con una salida de pulsos para realizar el calculo de consumo electrico, capturamos atravez de una interrrupcion en el GPIO 5 (D1), tecnicamente utilizando el factor propio del medidor 3200imp/kWh = 3.2, se calcula la potencia activa instantanea realizando una diferencia de tiempo entre pulsos y tomando como base 1 hora =3600s .
power = (3600000000.0 / (pulseTime – lastTime))/3.2
Este calculo se realiza en la interrupcion, solo cada vez que se registra un nuevo pulso.
Inicialmente agradecimientos a OpenEnegyMonitor, por la documentación el calculo fue tomado de una de las versiones anteriores de su pagina, pero la explicación mas detallada y técnica Monitoring energy via utility meter pulse output.
Visualizacion
Dado nuestro modulo ESP8266 por ahora no tiene ninguna rutina de comunicación, por el momento visualizaremos la potencia con una Matrix led x4 MAX7912.
Tutorial recomendado: X4 Matrix Led MAX7219 + ESP8266 + Sensor DS18b20 (Temperature)
Conexiones Chint DS666 & ESP8266 NodeMCU
Durante las primeras pruebas conectaba el GPIO directamente al medidor, el medidor chint tiene su propio optoacoplador, por alguna razón siempre que se generaba un pulso, el modulo ESP8266 registraba 2 pulsos, cosa que no pasaba con Arduino.
La solución fue aislar adicionando un optoacoplador 4n25 y una fuente 5v (Meanwell), de esta manera solo llegaria un pulso y por seguridad aislarlos circuitos Medidor/ESP8266.
- Montaje
- Diagrama de conexiones
Tutorial Completo
Power meter Chint DDS666 simple phase 3200imp/kwh + ESP8266
Comparison Measurements: Peacefair PZEM 004 Meter VS Chint Meter DDS666 + ESP8266
Codigo Arduino IDE
Como se menciono anteriormente con una interrupción en el GPIO 5, se realiza el calculo de potencia activa instantanea. pero dicho calculo solo se realiza al recibir pulsos.
Se a agregado una condición para no realizar el calculo con el primer pulsos después de descargar el código al modulo, por que calcularía un valor erróneo en ese caso, dado que como se realiza una diferencia de tiempo entre pulsos.
Para mejorar…
Existe una segunda validación que debe ser mejorada, si se recibe un pulsos en intervalo menor a los pulsos anteriores en el re-calculo de esta nueva frecuencia calculara un consumo muy grande, mientras llega el siguiente pulso, se ha puesto un limite tentativamente que si el consumo es < 1000w utilice el resultado de lo contrario descarte, por que es un valor muy grande y/o erróneo, estoy mejorando esta parte..
Inicialmente también realizaba el calculo de kWh en el ESP8266, pero lo descarte dado que son los kilovatios/hora acumulados, tendría que almacenar los valores en la eeprom o en el sistema de archivos SPIFFFS y se extenderia el codigo innecesariamente, es mejor y mas practico que la plataforma final que reciba los datos realice dicha integracion.
Nota: Descarga código completo abajo…
Conclusiones & Consideraciones
Inicialmente se debe tomar mucha precaución dado que este proyecto implica riesgo eléctrico o electrocucion dado que se utilizan 110VAC -120 VAC, Aunque no algunos no lo consideren alto voltaje, esto no minimiza el peligro, se recomienda tener conocimientos básicos o documentarse, nunca realizar conexiones en caliente, siempre des-energizar los circuitos de potencia.
Este método de medición de consumo eléctrico por pulsos, en este caso utilizando este medidor domiciliario chint, el tiempo de actulizacion de los vatios consumidos dependerá directamente de la carga que por ende influye en la cantidad de pulsos, con este bombillo de 45 vatios se recibía un pulso cada 24 seg aprox.
Para mejorar en codigo…
Esto lo mencione arriba pero quiero recalcarlo…
Detectar valores erroneos antes de actualizar vatios medidos, al realizarse cambio de frecuencia de pulsos bruscamente en un intervalo de tiempo muy pequeño, el calculo puede generar valores muy pequeños o muy grandes, un comportamiento anormal que aunque no ocurre pero se debe tener en cuenta.
En gran cantidad de proyectos utilizan un sensor optico o infrarojo para detectar el pulso sin requerir conectar, es otra posibilidad de mejora a futuro.
Existen otra clase de medidores de pulsos este método debería funcionar, siempre y cuando cuente con un factor de impulsos /kWh.
En próximos tutoriales lo integraremos a plataformas probadas anteriormente, Emoncms principalmente que cuenta con módulos muy detallados para consumo eléctrico.
En proximos tutoriales utilizaremos medidores un poco mas complejos no invasivos y con protocolos de comunicación.
Como siempre estamos abiertos a sugerencias, mejoras y aportes desde los comentarios….
Descargas
Referencias
Tutorial recomendado: Medidor electrico monofasico bifilar electronico CHINT DDS666
OpenEnergyMonitor – Monitoring energy via utility meter pulse output.