Cómo construir un OpenEVSE Low Cost y su vinculación con domoticz (versión marzo 2022)

Montaje de cargador DIY con OpenEvse V5

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

Si os interesa haceros con una placa podéis entrar en el grupo «OpenEVSE» de telegram, desde donde ha nacido el proyecto, para más información.

Con motivo del montaje completo de un cargador para un amigo, voy a documentar todo el proceso para intentar ayudar a los que se enfrentan al reto del montaje DIY. Aprovecharé para actualizar enlaces y precios de los componentes que he empleado.

Índice

Montaje PCB OpenEvse MOD

La versión que he usado es la V3.4, opción PCB+componentes.

El proceso ya esta descrito en otro tutorial, pero lo traigo aquí para concentrar la información.

Tenemos que soldar:
1 conversor DCDC +-12v, 2 integrados, 2 resistencias y 1 varistor.
Dependiendo del stock, puede que tengamos que soldar el diodo TVS P6SMB16CA. Como a veces lo hay smd y otras de agujero pasante, la placa tiene huellas para los dos casos. Si es smd, hay que soldarlo por la cara de abajo y si es pasante, por la cara de arriba.

En los últimos pedidos, la fábrica de placas lo tenía en stock, por lo que ya viene soldado smd.

Ahora nos vamos a la cara de componentes de agujero pasante. Creo que no hay posibilidad de error, porque excepto el HCPL2731, solo tienen una posición o es indiferente como se coloque el componente (sin polaridad). Para ese integrado, solo fijarse bien en el punto del pin 1.

Comenzamos por las resistencias, que tienen menor grosor, soldamos R8 y R9.

Continuamos con los integrados. Otra vez depende del stock, que lo haya smd o de agujero pasante.

Si es smd, es algo más tedioso soldarlo. Yo lo hago así: hay que enderezar las patillas con un alicate y hacerlas coincidir con los agujeros, soldando por esta cara, para lo que he ampliado el tamaño de los pads. Se puede aportar estaño por el otro lado, para que entre por los orificios y garantice una buena soldadura.

Soldar el resto de componentes hasta que quedar así:

También existe una huella para una resistencia de carga (burden resistor) de agujero pasante, que permite emplear diferentes transformadores de corriente (bobina CT o pinza amperimétrica), como la del proyecto original o la que usamos en esta ocasión, la SCT-013-000.

La placa ya lleva soldada en factoría la resistencia smd R4 de 47 ohm, por lo que no hay que hacer nada, es decir, que se puede usar directamente la pinza SCT-013-000. Lo que si que hay que hacer es modificar el valor para los cálculos del amperimetro que tiene cargado el arduino, que inicialmente es de 220. Se hace desde la app con el comando RAPI $SA. Hay que cambiarlo a
un valor de 210 y ajustarlo con valores próximos a este. (Ver más detalles sobre este ajuste más adelante).

Ahora hay que soldar el resto de componentes (zócalos, conectores JST, Hi-Link 12V y 5v, etc) hasta quedar así:

El LCD

El LCD I2C que propuse inicialmente es el que yo utilicé, sencillamente porque lo tenía sin usar.
Esta diseñado para Raspberry, normalmente esta agotado, es más aparatoso y hay que hacerle un
hack.

Se han propuesto varias alternativas:
a) Usar un LCD monocromo con placa PCF8574. No dispondremos de botón ni de led RGB y hay que modificar el firmware de arduino.
Hay que compilar el firmware modificando unas líneas.

En open_evse.ino cambiar línea:

54 //#include "./LiquidCrystal_I2C.h" // descomentar para LCD I2C PCF8574

En open_evse.h cambiar líneas:

224 #define DEFAULT_LCD_BKL_TYPE BKL_TYPE_RGB //comentar si se usa LCD monocromo
225 #define DEFAULT_LCD_BKL_TYPE BKL_TYPE_MONO //descomentar si se usa LCD monocromo
233 #define I2CLCD_PCF8574 // descomentar si se usa LCD I2C PCF8574

b) Usar el mismo LCD anterior, pero añadiendole una placa PCF8574 adicional, que permite
disponer de botón y led RGB. Es la solución desarrollada por @ChemaRoot, que además publica el
firmware ya modificado para cargar en arduino.

Lo podéis ver y descargar aquí:
https://github.com/ChemaRoot/OpenEVSE-Mod-JP-v0.1

c)Usar la placa LCD RGB by JJ. Esta permite usar directamente el firmware original sin modificar,
porque emplea el chip MCP23017. Además permite conectar boton normal, boton con led
monocromo, boton RGB, led RGB o un LCD RGB similar al del proyecto original.

La primera versión fabricada tiene un bug que no permite soldar el led RGB en la huella que hay en la placa. El integrado MCP23017, puede ser de agujero pasante o smd (en la otra cara) y hay dos posibles configuraciones:

LCD monocromo. Son necesarias como mínimo las 3
resistencias limitadoras para el led RGB, otra resistencia limitadora para el led del LCD y una resistencia variable para el contraste. El led RGB debe conectarse en 5v-Gr-Blu-Red mediante dupont o JST de 4 pines.

LCD RGB

Solo es necesario cerrar el puente que hay en la placa.

Puede conectarse un botón normalmente abierto entre el pin “botón” y GND.
El pin de 5v sirve si el botón esta iluminado.

En todos los casos, hay que conectar el LCD con la placa mediante un cable con conectores hembra JST de 4 pines: GND-5V-SDA-SCL

Carga del firmware en el arduino nano

Hay que descargar la última versión del firmware de estas direcciones:

Americano (7.1.3):
https://github.com/OpenEVSE/open_evse/releases/tag/7.1.3
Europeo (7.1.3.EU):
https://github.com/openenergymonitor/open_evse/releases

Hay varias opciones para la grabación, siendo las más comunes:
a) Mediante el IDEarduino.
Hay multitud de tutoriales en internet de como hacerlo. En esta dirección hay un artículo muy completo sobre el nano, incluyendo el proceso de grabación de un sketch:
https://programarfacil.com/blog/arduino-blog/familia-arduino-nano/
En este caso hay que descargar el código fuente (source code.zip) y descomprimirlo en una carpeta. Esta opción es la que permitirá hacer modificaciones, por ejemplo para usar un LCD con PCF8574.

b) Cargar el firmware ya compilado.
Para ello se emplean utilidades como Xloader que facilitan el proceso. En este caso hay que descargar openevse.hex.
Aqui hay un tutorial:
https://www.aranacorp.com/es/generacion-y-carga-de-archivos-hex-en-un-arduino/

Ajuste del amperímetro

Como usamos una pinza SCT-013-000 diferente a la del proyecto original, hay que modificar el valor para los cálculos del amperimetro que realiza el arduino, que inicialmente es de 220. Se hace por wifi desde la app. con el comando RAPI $SA. Hay que cambiarlo a un valor de 210 y ajustarlo con valores próximos a este.

En el firmware esta explicado (ver open_evse.h a partir de #ifdef AMMETER).
Hay que verificar el valor cargado desde la app con el comando RAPI:
$GA
>$OK 220 56^13
Ese valor son los miliamperios por cada paso del conversor AD del arduino. Es decir, cada paso que mida arduino por su pin analógico (que puede medir hasta 1024 pasos), se corresponde con 220mA.

Ahora necesitamos un amperímetro de referencia lo más exacto posible. Yo uso un PZEM004T, que parece ser bastante preciso cuando mide por encima de 5A. Veamos un ejemplo:
Si consideramos como valor real un valor medido con el amperimetro de referencia de 6.65A, tenemos que hacer las siguientes operaciones:
Valor medido por openEvse= 5,7A=5700mA/220 mA/paso AD=25,9 redondeando porque no admite decimales= 26 pasos.
Valor real=6.65A=6650mA/26 pasos=255,77 mA/paso. Podemos probar con 256.
En la app, nos vamos para introducir comandos RAPI y escribimos:
$SA 256 /r
Pulsar Send
Debemos obtener la respuesta:
>$OK^20
Comprobamos con:
$GA
>$OK 256 56^12
Ahora verificamos si openEvse mide igual que el amperímetro de referencia.
Si no es así, podemos probar con valores próximos al obtenido hasta dejarlo lo más ajustado posible.

Conexión WIFI

Ya no se mantiene el firmware para ESP8266 con las nuevas versiones del firmware openEVSE, por lo que hay que elegir un ESP32.

Descargar el firm para el ESP32 desde:
https://github.com/OpenEVSE/ESP32_WiFi_V4.x/releases

Yo utilizo ESP32 Download tools:
https://www.espressif.com/sites/default/files/tools/flash_download_tool_3.9.2.zip

Hay que indicar la ruta en la que se encuentran los 3 ficheros descargados y marcar los “check” de cada uno de ellos, tal como se muestra en la captura:

0x1000 bootloader.bin 
0x8000 partitions.bin
0x10000 firmware.bin

Cuando inicia como AP (OpenEVSE_aaaa), el password es “openevse”.
Una vez cargado la primera vez, las actualizaciones se pueden hacer por wifi, sin tener que desmontar el ESP32.
La conexión del ESP32 con la placa se hace mediante un cable con conectores hembra JST de 4 pines: GND-5V-TX-RX.

Recordad que las conexiones TX y RX van cruzadas: TX_placa a RX_ESP32 y RX placa a TX_ESP32:

Preparar el conector para el lado AC de la placa

Yo utilizo el conector JST-VH6, que es el mismo del proyecto original.

Soldar el conector macho a la placa. El conector hembra hay que fabricarlo. Los pines son grandes y se grimpan fácil con alicates. No usar cables muy gruesos, porque pasa muy poca corriente. Yo suelo emplear de recuperación de fuentes de PC.

Soporte impreso para la PCB

He hecho una modificación del diseño de thingiverse:
https://www.thingiverse.com/thing:3596417

Sobre ese diseño he creado un alojamiento para el ESP32 y he puesto soportes para que coincidan con los agujeros de la placa. Tambien hay un diseño de un soporte del LCD con agujero para un led RGB y otro que cabe en la caja Legrand estanca de 6 elementos que he utilizado.

Lo podéis descargar aquí:
https://www.thingiverse.com/thing:5259544

La caja

He usado una caja estanca de 6 elementos de la marca Legrand, que permite colocar en el carril DIN, la placa con el soporte impreso y un contactor monofásico bipolar.
https://www.amazon.es/gp/product/B078WDWSLW/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&th=1

Siguiendo el esquema de conexiones que esta más adelante, he montado todos los elementos:

Esquema de conexiones PCB V3.2 y V3.3 con CONTACTOR

Coste económico a fecha febrero 2022

Enlace a esta tabla:
https://drive.google.com/file/d/1e8gEqJgUt-HF0JnmowiwtUYXLblwF9sB/view?usp=sharing

Enlaces de compra orientativos:
https://docs.google.com/spreadsheets/d/1xBWLJ2pVPaWO_4Z3BFKiPL29d6mb5j92LWCXIcKdIYw/edit?usp=sharing
https://docs.google.com/spreadsheets/d/1xBWLJ2pVPaWO_4Z3BFKiPL29d6mb5j92LWCXIcKdIYw/edit?usp=sharing
https://es.aliexpress.com/item/4001251146347.html?spm=a2g0o.cart.0.0.b77e3c005XGxiD&mp=1
https://es.aliexpress.com/item/32341832857.html?spm=a2g0o.cart.0.0.17883c00y4jlOl&mp=1
https://es.aliexpress.com/item/1499730714.html?spm=a2g0o.productlist.0.0.101b205dzBOtJy&algo_pvid=6608fd28-3346-4708-a095-5125f9a79bed&algo_expid=6608fd28-3346-4708-a095-5125f9a79bed
https://es.aliexpress.com/item/1005002007179360.html?spm=a2g0o.productlist.0.0.4a2d27fbAcE7Zq&algo_pvid=4b83f9ad-c795-4dab-9083-e6c89c219f9f&algo_exp_id=4b83f9ad-c795-4dab-9083-e6c89c219f9f-0&pdp_ext_f=%7B%22sku_id%22%3A%2212000018389343178%22%7D
https://es.aliexpress.com/item/32928267626.html?spm=a2g0o.cart.0.0.17883c00wNIAlV&mp=1
https://es.aliexpress.com/item/32292861233.html?spm=a2g0o.cart.0.0.4f413c00ubzprv&mp=1
https://es.aliexpress.com/item/1005003307055510.html?spm=a2g0o.cart.0.0.4f413c00ubzprv&mp=1
https://www.bricomart.es/contactor-modular-2p-25a-10366083.html
https://www.amazon.es/gp/product/B078WDWSLW/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&th=1
https://www.bricomart.es/kit-prensa-junta-tuerca-m20-ip68-10342920.html
https://es.aliexpress.com/item/32961711664.html?gatewayAdapt=glo2esp&spm=a2g0o.order_list.0.0.21ef194dcPsdPg
https://es.aliexpress.com/item/400129127

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!