#1
12-07-2020, 05:10 PM
Hola a todos!
Realizando el proyecto del DomDom al final se ha ido complicando la cosa y estaba quedando un proyecto bastante complejo cuando realmente la intención era todo lo contrario. Entre la complejidad y que dadas las circunstancias actuales es más complicado comprar componentes he decidido hacer una pausa en ese proyecto e ir poniendo metas más cortas para que se vayan viendo resultados.
La primera meta corta es este proyecto que he bautizado como C01CH. C -> CONTROLADOR ; 01CH -> 1 CANAL.
Actualmente este proyecto es 100% funcional por lo que quien quiera seguirlo puedo hacerlo sin miedo a que se quede a medias. Se que es un controlador muy básico pero era la intención. Partiendo de esta base iré haciendo "otros modelos" más completos y complejos.
Características:
· Necesita conexión WIFI para funcionar correctamente.
· Controlador de 1 Canal
· Canal dimeable.
· Voltaje máximo de salida 24V. Voltaje máximo de entrada 36V. Consumo máximo 3A.
· Canal con control de voltaje (CV) y control de corriente (CV) configurable por software. Nos evita tener que estar calculando resistencias para las series de los led.
· Hasta 50 puntos de programación.
· Posibilidad de fijar un valor de forma manual.
· Servicio NTP para la fecha y hora.
· Creación de wifi propio en caso de no estar el configurado disponible.
· Webserver integrado para su control. Desde la pantalla de control se puede:
· Ver el consumo actual del canal.
· Ver, cambiar y configurar los puntos programación.
· Resetear el equipo.
· Actualización de software sin tener acceso físico al equipo.
· Configurar led para ver espectro actual.
· Establecer un valor de potencia de forma manual.
· Configuración completa del equipo. (Voltaje, consumo, servidor NTP, wifi..).
Lista de materiales:
· 1 x ESP32 Devkit C 36pins. -> 3.85€
· 2 x LM2596. -> 0.61€/u -> 1.22€.
· 1 x MOSFET PWM 400W 15A. -> 0.67€
· 1 x INA219. -> 1.08€
· 1 x Resistencia 507Ohms. (Válida cualquiera en el rango de 400-600Ohms) -> 0.52€ / 100 uds -> 0.005€.
· 1 x Paquete de cable hembra/hembra, hembra/macho, macho/macho. -> 1.59€
· 1 x Botón switch redondo. -> 1.16€ / 10 und -> 0.11€.
· 4 x clemas electricista. -> 1€
· Acceso a una impresora 3D para la caja. -> Unas 10 horas de impresión y 3€ de coste de material.
· 8 x tuercas y tornillos M3.
Coste de materiales:
· Electrónica: 9.52€
· Caja: 5€ (según coste de mi impresora).
Los ficheros 3D de la caja se pueden descargar en:
https://www.thingiverse.com/thing:4540018
El firmware del ESP32 se puede descargar en:
https://github.com/fg89o/C01CH
================= MONTAJE =======================
1.- Preparación de los LM2596.
Uno de los LM2596 será el encargado de proporcionar la tensión al ESP32. Es muy aconsejable conectarlos a la fuente que vayamos a utilizar, ajustarlo a 5V y marcarlo con rotulador para no confundirlo.
Al segundo LM2596 le soldaremos la resistencia de 507 Ohms en la patilla que une el potenciometro con el pin4 del integrado.
Ojo!! Es muy importante que el componente a usar sea exactamente el LM2596, no valen otros parecidos como por ejemplo el MT3608. Habría que recalcular el valor de la resistencia.
Para que sea más fácil dejo una imagen del resultado:
Una vez soldada la resistencia tendremos que ajustar el potenciometro. Para ello conectamos la otra patilla de la resistencia a GND (es una conexión temporal, no soldeis) , y la entrada del LM2596 a la fuente. Encendemos la fuente y con un multimetro midiendo en la salida del LM2596 vamos girando el potenciometro hasta obtener el voltaje deseado.
Aclaración: El voltaje máximo no es el que vamos a utilizar, eso lo configuraremos luego. El voltaje máximo siempre debe ser superior al que necesitemos para luego permitir el ajuste por software. Por ejemplo, si necesitamos 15V para la serie y usamos una fuente de 24V nuestro voltaje máximo debería >15V y menor a 24V. Un valor de 20V sería correcto.
2.- Preparación del INA219
Generalmente este componente viene sin los pines soldados. Yo recomiento soldar el conector que trae y NO soldar los pines marcados como vin-, vin+. Por esos pines irán todos nuestros voltios y amperios con lo cual es peligroso que se quede al aire. Podemos cortar la barra de 6 pines que trae y dejar solamente 4. En caso de que ya estén soldados utilizar cinta aislante para evitar posibles problemas.
3.- Conexionado.
Os dejo una imagen de como iría el conexionado. Tened en cuenta que en la foto el ESP32 no tiene una misma posición que cuando esté montado. Prestad mucha atención a las conexiones (sobre todo las de voltaje).
4.- Montaje en la base.
La base tiene unos agujeros para sujetar los componentes con bridas. Recomiendo hacer este paso después de tenerlos conectados para mayor facilidad. Os dejo una imagen del diseño 3D que hice y del resultado real:
5.- Montaje de la caja
Lo primero sería montar el botón sobre la tapa y realizar las conexiones. Luego montaríamos las clemas de electricista en su sitio y por último pondriamos las tapas.
La tapa superior está pensada para ponerle un led que nos indique el estado del equipo. De momento, está opción no está implementada ya que está pendiente de estudio.
Para sujetar las tapas a la caja se utilizan tuercas y tornillos de M3. Un tornillo de 8mm de largo sería ideal aunque hay sitio para tornillos de hasta 12mm.
================= SOFTWARE =======================
1.- Entorno de programación
Al igual que en el proyecto anterior se necesita Visual Studio Code y PlatformIO para compilar y programar el ESP32.
2.- Código
El código estará publicado en github. Descargar la última versión.
3.- Compilación de la parte del webserver
Desde el Visual Studio Code abrir la carpeta "C01CH UI". Instalar todos los plugins que nos pida y después ejecutar la tarea "build".
4.- Programación del ESP32
Abrir la carpeta "C01CH fw" con el Visual Studio.
Sobre el código podemos irnos al fichero configuration.h, localizar la variable "WIFI_STA_SSID_NAME" y sustituir "NOMBRE_DE_TU_WIFI" por el ssid de la wifi de nuestra casa. Haremos lo mismo con la propiedad "WIFI_STA_PASSWORD" poniendo nuestro password. En caso de no querer modificar el código podremos dejarlo como está y modificarlo a posteriori desde el entorno web.
Conectar el ESP32 por USB y ejecutar la tarea "Upload file system image" y despues "Upload".
================= PUESTA EN MARCHA =======================
Lo primero sería no conectar la salida hasta tener todo configurado!.
Dejando la configuración por defecto, el ESP32 debería haberse conectado a nuestra red y responder en la dirección http://C01CH.local.
En caso de que el equipo no pueda conectarse a la red indicada creará su propio Wifi con el nombre C01CH. Si nos conectamos a esa red podemos acceder sl equipo utilizando la misma dirección http://C01CH.local.
Una vez hayamos entrado tendremos que ir al apartado "Canales" y configurar el voltaje máximo y el consumo máximo. El consumo está en mA.
Ejemplos de configuración:
· Serie de 4 Leds blancos 1W (3.4V) + 1 Led rojo 1W (2.3V): Voltaje = 15.9, Consumo: 300mA.
· 2 x Serie de 4 Leds blancos 1W (3.4V): Voltaje = 15.9, Consumo: 600mA.
· Serie de 4 Leds blancos 3W (3.4V) + 1 Led rojo 3W (2.3V): Voltaje = 15.9, Consumo: 700mA.
Guardamos la configuración y ahora ya es seguro conectar la salida. Podremos comprobar el correcto funcionamiento del limite con el múltimetro.
Como habreis podido observar este equipo no tiene reloj externo por lo que cada vez que se enciende se pone en hora utilizando un servicio NTP de internet.
En el caso de que el equipo no fuese capaz de ponerse en hora, seguiría funcionando la programación pero con horas erróneas, es decir, nuestro acuario seguiuría teniendo el mismo fotoperiodo pero, a lo mejor, las luces estarían encendidas de noche.
Para que la hora sea la correcta debemos configurar nuestro huso horario. Nos vamos a la parte de fecha/hora y podremos seleccionar tanto el servidor de hora, como la zona. Una vez guardado es necesario reiniciar para que los cambias surjan efecto.
El resto de opciones creo que son bastante descriptivas y están descritas en el post del DomDom, con lo que la mejor forma de saber como funciona es trasteando jaja.
Muchas gracias a todos por leer el tocho post y por las aportaciones y comentarios !
Realizando el proyecto del DomDom al final se ha ido complicando la cosa y estaba quedando un proyecto bastante complejo cuando realmente la intención era todo lo contrario. Entre la complejidad y que dadas las circunstancias actuales es más complicado comprar componentes he decidido hacer una pausa en ese proyecto e ir poniendo metas más cortas para que se vayan viendo resultados.
La primera meta corta es este proyecto que he bautizado como C01CH. C -> CONTROLADOR ; 01CH -> 1 CANAL.
Actualmente este proyecto es 100% funcional por lo que quien quiera seguirlo puedo hacerlo sin miedo a que se quede a medias. Se que es un controlador muy básico pero era la intención. Partiendo de esta base iré haciendo "otros modelos" más completos y complejos.
Características:
· Necesita conexión WIFI para funcionar correctamente.
· Controlador de 1 Canal
· Canal dimeable.
· Voltaje máximo de salida 24V. Voltaje máximo de entrada 36V. Consumo máximo 3A.
· Canal con control de voltaje (CV) y control de corriente (CV) configurable por software. Nos evita tener que estar calculando resistencias para las series de los led.
· Hasta 50 puntos de programación.
· Posibilidad de fijar un valor de forma manual.
· Servicio NTP para la fecha y hora.
· Creación de wifi propio en caso de no estar el configurado disponible.
· Webserver integrado para su control. Desde la pantalla de control se puede:
· Ver el consumo actual del canal.
· Ver, cambiar y configurar los puntos programación.
· Resetear el equipo.
· Actualización de software sin tener acceso físico al equipo.
· Configurar led para ver espectro actual.
· Establecer un valor de potencia de forma manual.
· Configuración completa del equipo. (Voltaje, consumo, servidor NTP, wifi..).
Lista de materiales:
· 1 x ESP32 Devkit C 36pins. -> 3.85€
· 2 x LM2596. -> 0.61€/u -> 1.22€.
· 1 x MOSFET PWM 400W 15A. -> 0.67€
· 1 x INA219. -> 1.08€
· 1 x Resistencia 507Ohms. (Válida cualquiera en el rango de 400-600Ohms) -> 0.52€ / 100 uds -> 0.005€.
· 1 x Paquete de cable hembra/hembra, hembra/macho, macho/macho. -> 1.59€
· 1 x Botón switch redondo. -> 1.16€ / 10 und -> 0.11€.
· 4 x clemas electricista. -> 1€
· Acceso a una impresora 3D para la caja. -> Unas 10 horas de impresión y 3€ de coste de material.
· 8 x tuercas y tornillos M3.
Coste de materiales:
· Electrónica: 9.52€
· Caja: 5€ (según coste de mi impresora).
Los ficheros 3D de la caja se pueden descargar en:
https://www.thingiverse.com/thing:4540018
El firmware del ESP32 se puede descargar en:
https://github.com/fg89o/C01CH
================= MONTAJE =======================
1.- Preparación de los LM2596.
Uno de los LM2596 será el encargado de proporcionar la tensión al ESP32. Es muy aconsejable conectarlos a la fuente que vayamos a utilizar, ajustarlo a 5V y marcarlo con rotulador para no confundirlo.
Al segundo LM2596 le soldaremos la resistencia de 507 Ohms en la patilla que une el potenciometro con el pin4 del integrado.
Ojo!! Es muy importante que el componente a usar sea exactamente el LM2596, no valen otros parecidos como por ejemplo el MT3608. Habría que recalcular el valor de la resistencia.
Para que sea más fácil dejo una imagen del resultado:
Una vez soldada la resistencia tendremos que ajustar el potenciometro. Para ello conectamos la otra patilla de la resistencia a GND (es una conexión temporal, no soldeis) , y la entrada del LM2596 a la fuente. Encendemos la fuente y con un multimetro midiendo en la salida del LM2596 vamos girando el potenciometro hasta obtener el voltaje deseado.
Aclaración: El voltaje máximo no es el que vamos a utilizar, eso lo configuraremos luego. El voltaje máximo siempre debe ser superior al que necesitemos para luego permitir el ajuste por software. Por ejemplo, si necesitamos 15V para la serie y usamos una fuente de 24V nuestro voltaje máximo debería >15V y menor a 24V. Un valor de 20V sería correcto.
2.- Preparación del INA219
Generalmente este componente viene sin los pines soldados. Yo recomiento soldar el conector que trae y NO soldar los pines marcados como vin-, vin+. Por esos pines irán todos nuestros voltios y amperios con lo cual es peligroso que se quede al aire. Podemos cortar la barra de 6 pines que trae y dejar solamente 4. En caso de que ya estén soldados utilizar cinta aislante para evitar posibles problemas.
3.- Conexionado.
Os dejo una imagen de como iría el conexionado. Tened en cuenta que en la foto el ESP32 no tiene una misma posición que cuando esté montado. Prestad mucha atención a las conexiones (sobre todo las de voltaje).
4.- Montaje en la base.
La base tiene unos agujeros para sujetar los componentes con bridas. Recomiendo hacer este paso después de tenerlos conectados para mayor facilidad. Os dejo una imagen del diseño 3D que hice y del resultado real:
5.- Montaje de la caja
Lo primero sería montar el botón sobre la tapa y realizar las conexiones. Luego montaríamos las clemas de electricista en su sitio y por último pondriamos las tapas.
La tapa superior está pensada para ponerle un led que nos indique el estado del equipo. De momento, está opción no está implementada ya que está pendiente de estudio.
Para sujetar las tapas a la caja se utilizan tuercas y tornillos de M3. Un tornillo de 8mm de largo sería ideal aunque hay sitio para tornillos de hasta 12mm.
================= SOFTWARE =======================
1.- Entorno de programación
Al igual que en el proyecto anterior se necesita Visual Studio Code y PlatformIO para compilar y programar el ESP32.
2.- Código
El código estará publicado en github. Descargar la última versión.
3.- Compilación de la parte del webserver
Desde el Visual Studio Code abrir la carpeta "C01CH UI". Instalar todos los plugins que nos pida y después ejecutar la tarea "build".
4.- Programación del ESP32
Abrir la carpeta "C01CH fw" con el Visual Studio.
Sobre el código podemos irnos al fichero configuration.h, localizar la variable "WIFI_STA_SSID_NAME" y sustituir "NOMBRE_DE_TU_WIFI" por el ssid de la wifi de nuestra casa. Haremos lo mismo con la propiedad "WIFI_STA_PASSWORD" poniendo nuestro password. En caso de no querer modificar el código podremos dejarlo como está y modificarlo a posteriori desde el entorno web.
Conectar el ESP32 por USB y ejecutar la tarea "Upload file system image" y despues "Upload".
================= PUESTA EN MARCHA =======================
Lo primero sería no conectar la salida hasta tener todo configurado!.
Dejando la configuración por defecto, el ESP32 debería haberse conectado a nuestra red y responder en la dirección http://C01CH.local.
En caso de que el equipo no pueda conectarse a la red indicada creará su propio Wifi con el nombre C01CH. Si nos conectamos a esa red podemos acceder sl equipo utilizando la misma dirección http://C01CH.local.
Una vez hayamos entrado tendremos que ir al apartado "Canales" y configurar el voltaje máximo y el consumo máximo. El consumo está en mA.
Ejemplos de configuración:
· Serie de 4 Leds blancos 1W (3.4V) + 1 Led rojo 1W (2.3V): Voltaje = 15.9, Consumo: 300mA.
· 2 x Serie de 4 Leds blancos 1W (3.4V): Voltaje = 15.9, Consumo: 600mA.
· Serie de 4 Leds blancos 3W (3.4V) + 1 Led rojo 3W (2.3V): Voltaje = 15.9, Consumo: 700mA.
Guardamos la configuración y ahora ya es seguro conectar la salida. Podremos comprobar el correcto funcionamiento del limite con el múltimetro.
Como habreis podido observar este equipo no tiene reloj externo por lo que cada vez que se enciende se pone en hora utilizando un servicio NTP de internet.
En el caso de que el equipo no fuese capaz de ponerse en hora, seguiría funcionando la programación pero con horas erróneas, es decir, nuestro acuario seguiuría teniendo el mismo fotoperiodo pero, a lo mejor, las luces estarían encendidas de noche.
Para que la hora sea la correcta debemos configurar nuestro huso horario. Nos vamos a la parte de fecha/hora y podremos seleccionar tanto el servidor de hora, como la zona. Una vez guardado es necesario reiniciar para que los cambias surjan efecto.
El resto de opciones creo que son bastante descriptivas y están descritas en el post del DomDom, con lo que la mejor forma de saber como funciona es trasteando jaja.
Muchas gracias a todos por leer el tocho post y por las aportaciones y comentarios !