Cómo construir un OpenEVSE Low cost y su vinculación con domoticz

JJ del grupo «OpenEVSE» de telegram nos explica cómo ha fabricado un OpenEVSE V5 lowcost.

Índice:

Situación de partida y motivaciones para este proyecto

Tengo un cargador comercial estupendo (walbox pulsar), que me vino con el coche (Seat mii electric), pero carece de las funcionalidades que quiero: control dinámico de potencia, aprovechamiento de excedentes solares e integración en mi sistema domótico, justo lo que ofrece OpenEVSE. Puedo conseguir que el walbox tenga control dinámico de potencia (“powerboost” se llama), añadiendo un meter Carlo Gavazzi en el cuadro de la entrada de la vivienda y llevando un cable hasta el cargador, con un gasto de más de 100€, pero el resto de prestaciones no las ofrece.

Como me encanta el cacharreo y no quería gastarme más de 300€, aprovechando que tengo ociosos entre mis trastos muchos de los componentes necesarios (nano, LCD, placa de reles, caja estanca, ect…), me lanzo a hacer una modificación de la placa original, un OpenEVSE PLUS V5 y mandé a fabricar la PCB con (casi) todos los componentes smd ya montados a jlcpcb.

Al final, sin tener garantías de éxito, invertí en I+D unos 60€. A cambio obtuve muchas horas de entretenimiento y aprendizaje, que afortunadamente me proporcionaron el resultado deseado. Os lo cuento.

PCB OpenEVSE PLUS V5_mod by JJ

Utilicé la placa OpenEVSE PLUS V5, publicada en el Github del proyecto:
https://github.com/OpenEVSE/OpenEVSE_PLUS/blob/master/OpenEVSE_PLUS_v5/Advanced_v5.pdf

Básicamente, tomé el esquema publicado y comencé a borrar componentes para abaratar y facilitar la fabricación de la PCB en jlcpcb. Esta fábrica china no ofrece montaje de componentes de agujero pasante y en sus existencias, faltaban algunos componentes smd necesarios. Al final solo dispuse de resistencias, condensadores y diodos de uso general.

Eliminé:

  • Toda la electrónica relacionada con arduino.
  • Todo el circuito GFCI, que es un “interruptor diferencial”. Esta protección indispensable, concretamente un diferencial superinmunizado, ya la tengo en mi cuadro eléctrico del cargador , junto con un magnetotérmico, con lo que me garantizo la seguridad a la que obliga la normativa.
  • Las salidas que ya proporciona el propio arduino nano: FTDI e ISP.
  • Las salidas para controlar el contactor con bobina de 12v de CC que incluye el kit original, pues pensaba usar una placa de reles que tiene ya toda la electrónica para ser gobernado directamente por las salidas de arduino a 5v.
  • La fuente de alimentación dual 12v/5v, porque necesitaba espacio en la PCB para el arduino y porque no la ancontraba en Aliexpress ni en digikey.

Manteniendo las dimensiones de la placa original (65x45mm), generé el PCB final, que tiene este aspecto y conexiones:

Como siempre, todo diseño tiene ventajas e inconvenientes.

Inconvenientes:

  • Se pierde integración, con un aumento del espacio necesario para alojar los diferentes elementos.
  • Al existir más elementos conectados por cable, pueden darse malos contactos.
  • Mayor dificultad de montaje.

Ventajas:

  • Menor precio (una tercera parte).
  • Posibilidad de DIY y personalización.
  • Modularidad: los diferentes elementos (Arduino, LCD, RTC…), son baratos y muy accesibles (Aliexpress, Amazon..). Esto facilita la fabricación y la compra de repuestos para eventuales reparaciones.
  • Es muy fácil cargar/actualizar el firmware, al disponer de un puerto USB en el arduino, por lo que no necesitamos programador extra.

Contactor/rele

Yo me decanté por una placa de reles de 30A que lleva toda la electrónica necesaria para ser gobernado directamente por las salidas 5v de arduino, porque al tenerla, era la forma más barata de probar el funcionamiento de un prototipo. De momento la mantengo, porque por ahora solo uso openEVSE para aprovechar los excedentes solares y raramente paso de 8A, con lo que deben aguantar sin problemas.

Si se piensa usar intensidades más altas, igual estos reles son muy endebles y 16A, que es la máxima intensidad que admite mi coche en monofásica, de forma continuada durante varias horas, los deteriora rápidamente. En ese caso, entiendo que puede ser más apropiado emplear un contactor con bobina de 230v de este tipo:

O una alternativa barata de Aliexpress:

El LCD RGB I2C

El proyecto original ha hecho un gran trabajo de integración, metiendo en la misma placa el LCD 16×2 RGB, el reloj y un sensor de temperatura. Como es imposible conseguirlo salvo en la tienda de OpenEVSE, tiré de mi caja de cacharros y tenía un LCD para la RPI con el mismo chip MCP23017, que además contaba con un led RGB y pulsadores para manejar el menú.

Los caracteres no cambian de color, pero sirve perfectamente.
Si se quiere instalar el botón externo, hay que hacer un “hack”, soldando 4 cables a los pines correspondientes, 2 a la alimentación y 2 al pulsador de la placa.

Cualquier LCD 16×2 I2C con el chip MCP23017 valdría, pero yo no lo he encontrado con caracteres RGB y con conexión para botón externo.

El sensor de temperatura MCP9808 I2C

No es imprescindible, pero por el precio que tiene es interesante montarlo. Yo lo tengo sobre los reles, que pienso que es el elemento que mas puede calentarse. En el kit original, al estar integrado en el LCD, toma la temperatura del “ambiente” interior de la caja.
Se podría gestionar una alarma desde domoticz o node red, para avisarnos y/o hacer cosas que brinden más seguridad a nuestro cargador (desconexión, etc).

La fuente de alimentación

Se necesita una fuente de alimentación dual, que proporcione 5v y 12v. Las primeras pruebas las hice con un alimentador de 12v que tenía y un regulador de voltaje (stepdown) para obtener los 5v.

Eso fue mientras me llegó el hilink de 12v, porque el de 5v ya lo tenía. Era una solución muy  aparatosa que ocupaba mucho espacio en la caja.

Creo que la solución más apropiada por su tamaño y precio es usar estas fuentes de alimentación que se han vuelto tan populares.

La caja

La elección dependerá de dónde se vaya a montar el cargador (interior o exterior) o, como fue mi caso,  de lo que se tenga a mano, que fue la caja de un antiguo cuadro de maniobras de motores de garaje.

Sugiero, por ser muy asequibles y apropiadas, cajas estancas eléctricas (más o menos grandes). De este tipo:

https://www.bricomart.es/caja-superficie-estanca-6-elementos.html

 

Aquí tenéis dos ideas que ilustran esta solución:

https://www.thingiverse.com/thing:2779574

https://www.thingiverse.com/thing:3596417

El conector/cable de carga

Mi elección para el prototipo y no tener que gastar más, fue fabricar con mi impresora 3D un conector mennekes tipo 2 hembra. Lo hice porque el coste final lo puedo considerar cero, ya que tenía el hardware adecuado. Se trata de los conectores de un enchufe hembra trifásico que tenia entre mis trastos. Tienen la medida adecuada (6mm de diámetro) y se adaptan a la perfección al conector de carga. Sin estos conectores diseñados para soportar altas corrientes no lo hubiese intentado.

Como mi coche ya trae un cable de carga, no tenía que hacer ninguna inversión para ver si funcionaba el invento.

Como aliciente adicional, estaba el reto del diseño hasta conseguir un prototipo funcional. Este es el enlace de thingiverse por si alguno se anima:
https://www.thingiverse.com/thing:4741948

Si eres un maker y disfrutas con esto, adelante. He visto en walapop algun enchufe trifásico de segunda mano muy barato. Pero os recomiendo que optéis por uno comercial, que cuestan del orden de 40€, sobre todo si vais a usar altas corrientes de carga.

Obviamente, se puede optar por poner un cable de carga, eso depende de vuestras necesidades.

Para probar si funcionaba el prototipo, puse un cable con enchufe schuko de 16A para tomar la corriente. Y todavía no lo he quitado, pues con los excedentes solares (7-8A) no hay problema.

Además serviría como cargador portátil y me facilita seguir cacharreando.

Carga del firmware en el arduino nano

Fue el primer problema que tuve que solucionar. Al intentar cargar el firmware oficial, recibí el mensaje de que no había espacio para el sketch (por muy poco).

La solución fue probar a ganar espacio reduciendo el tamaño del bootloader y funcionó. Hay que cambiar el que trae arduino por defecto por “optiboot”. Para ello, si no se quiere comprar un programador para esta finalidad, se puede usar otro nano como programador ISP:en el IDE Arduino, ir a:

 Menú herramientas>programador y seleccionar “Arduino as ISP”

Yo seguí las instrucciones de:
https://ingeniocasero.blogspot.com/2017/05/cambiar-bootloader-de-arduino-nano-y.html
http://www.martyncurrey.com/arduino-nano-as-an-isp-programmer/

También hay que instalar la placa “OpenEVSE with optiboot” en “boards.txt” del IDE (yo he usado la versión 1.6.4, pues recomiendan la 1.6.X), que esta en la ruta indicada en el menú archivo>preferencias.

En mi caso la ruta es esta:

C:\Users\JJ\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.21

Editar “boards.txt” y añadir al final:

#####
# OpenEVSE with optiboot
#####
openevsebl.name=[optiboot]OpenEVSE

openevsebl.upload.tool=avrdude
openevsebl.upload.protocol=arduino
openevsebl.upload.maximum_size=32256
openevsebl.upload.maximum_data_size=2048
openevsebl.upload.speed=115200

openevsebl.bootloader.tool=avrdude
openevsebl.bootloader.low_fuses=0xFF
openevsebl.bootloader.high_fuses=0xDE
openevsebl.bootloader.extended_fuses=0x04
openevsebl.bootloader.unlock_bits=0x3F
openevsebl.bootloader.lock_bits=0x0F
openevsebl.bootloader.file=optiboot/optiboot_atmega328.hex

openevsebl.build.mcu=atmega328p
openevsebl.build.f_cpu=16000000L
openevsebl.build.board=AVR_DUEMILANOVE
openevsebl.build.core=arduino
openevsebl.build.variant=standard

Finalmente, hay que abrir con el IDE Arduino 1.6.4 el firmware a cargar, que se obtiene en esta dirección:

https://github.com/OpenEVSE/open_evse

Seleccionar en el IDE: menú herramientas>placa: [optiboot]OpenEVSE y subir el sketch como cualquier otro de arduino y ya estará operativo, en lo que a software ser refiere, vuestro OpenEVSE.

Conexion WIFI

La conexión la hago directa al arduino nano, sacando 4 cables de los pines TX, RX, 5V y GND.

Probé un wemos mini (ESP8266) y tenía malísima cobertura, fallaba en las conexiones y no iba fluido. Sin embargo el ESP32, me fue fenomenal y es el que he dejado. Como la diferencia de precio es mínima, recomiendo el ESP32.

Descargar el firm para el ESP32  o ESP 8266 desde:

https://github.com/OpenEVSE/ESP32_WiFi_V3.x/releases

https://github.com/OpenEVSE/ESP8266_WiFi_v2.x/releases

Yo instalé en ESP32 con línea de comandos:

Primer flasheo:

esptool.py --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin

Sucesivas actualizaciones:

esptool.py --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 firmware.bin

Cuando inicia como AP el password es “openevse”.

 Si se emplea ESP32 Download tools, hay que indicar las 3 direcciones y los 3 ficheros a subir:

0x1000     bootloader.bin

0x8000     partitions.bin

0x10000   firmware.bin

Esquema de conexiones:

Para más información

Iremos completando el tutorial a medida que se vaya actualizando la información en el grupo de telegram: «OpenEVSE«.

Integración del cargador de vehículo eléctrico OpenEVSE en domoticz

Para integrar el OpenEVSE en domoticz clica aquí.

Uso del OpenEVSE única y exclusivamente con excedentes fotovoltaicos con y sin vertido a red (con o sin inyección cero)

Para utilizar el OpenEVSE única y exclusivamente con excedentes fotovoltaicos con y sin vertido a red (con o sin inyección cero) clica aquí.

Uso del OpenEVSE con control dinámico de potencia (fotovoltaica cuando haya disponible y potencia contratada por la noche). Válido tanto para domoticz como para Home Assistant (HA)

Para utilizar el OpenEVSE con control dinámico de potencia (fotovoltaica cuando haya disponible y potencia contratada por la noche) clica aquí.

La APP de OpenEVSE

Recordar que uno de los miembros del grupo de telegram de «OpenEVSE» (@Toppeer2) ha creado una APP para gestionar la carga del OpenEVSE desde el móvil. Queremos agradecer que compartiera su trabajo!

https://play.google.com/store/apps/details?id=com.irifa.programar_carga_ev

Para cualquier duda o consulta tienes disponible el grupo de telegram «Domoticz a lo Spain» para entrar, ponerte cómodo y participar cuanto quieras.

Clica aquí para entrar en él

Cualquier duda, sugerencia o comentario será bien recibida en la web!