Concurso de fotografía AM

Temática: «Una panorámica de tu acuario».
Ya esta abierto el plazo para presentar fotografías.

Más info
image01

¿Aún no conoces AMA?

Hazte socio de Acuariofilia Madrid Asociación.
CERRADO EL PLAZO DE INSCRIPCIÓN

Más info
image01

Atlas de peces de AM

¡Hemos alcanzado las 800 fichas! Visita nuestro atlas de peces actualizado.

Más info
image01

Cardúmenes y sociabilidad

Nueva actualización de la tabla con una extensa relación de peces, donde podrás conocer qué entorno necesita cada especie, su sociabilidad y si convive o no en cardumen. ¡Pasa a descubrirla!

Mas info
image01
DIY controlador 1 Canal
Respuestas: 6    Visitas: 2610
#1
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:

İmage



İmage



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.

İmage



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).

İmage



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:

İmage


İmage



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.

İmage



================= 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.

İmage



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 !
#2
Gracias, por el desarrollo y por compartirlo.

+1
#3
Actualizo con fotos del resultado final

İmage


İmage



Al final la caja ha quedado un poco grande. Trabajaré un poco este aspecto para intentar conseguir algo más compacto.
#4
Actualizo el estado del proyecto:

Desde hace algo más de un mes tengo este equipo en funcionamiento y he ido arreglando fallos y mejorando cosa según lo iba utilizando. Actualmente creo que está bastante depurado, con una interfaz muy intuitiva y que cumple al 100% con su función. Los principales cambios han sido:

· Cambio en el diseño de la caja. He optimizado mucho el espacio y el diseño de la caja (creo que ha mejorado bastante). La impresión 3D de la caja ha pasado de 10 horas a unas 4 horas, reduciendo así también el coste. Los conectores son tipo jack para que sea más fácil utilizar con pantallas comerciales y con fuentes de alimentación comerciales. Os pongo fotos del proceso de montaje y la comparación ente la nueva y la vieja
İmage


İmage


İmage


İmage


İmage


İmage



· El software ha mejorado sobre todo en la interfaz, hay bastantes bugs corregidos y he incluido una opción de actualización remota. Gracias a esto podemos reprogramar el equipo sin necesitad de desenchufarlo de donde esté. Una vez finalizado, el equipo se reinicia automáticamente para coger los nuevos cambios. Os pongo una captura de la página de inicio que es la que más ha cambiado:

İmage



· Al probar el equipo he visto que el dc-dc LM2596 empieza a calentarse mucho si superas los 10W de ahí que la caja tenga un ventilador. Recomiendo usar el XL4015 que admite muchísima más potencia. En los ficheros hay dos modelos de caja, una para el LM2596 y otro para el XL4015.

· Revisando la lista de materiales habría que sustituir:
- Las clemas de electricista por estos conectores hembra, es un lote de 10 y se necesitan 3.
- En vez de 8 tornillos solamente se necesita 1.

· Por último he unificado todos los ficheros (modelos 3D de cajas, software, firmware, esquema) en el repositorio de Github para que sea más fácil de mantener. Además, de esta forma al bajar el código sabes que lo que hay es 100% compatible entre ello.

Si alguien se anima a construirlo y necesita materiales o no tiene impresora 3D que contacte conmigo que seguro que puedo echar una mano. Al haber hecho varios prototipos me han sobrado muchas cosas.

Cualquier aportación o sugerencia es bienvenida!
#5
Ya te dije que los Xl.... Eran buenos .sobre la caja ..mucho mejor +10
#6
nueva actualización:

1) He hecho varios cambios en el código para que el sistema sea más estable.
2) Como me he dado cuenta que el sistema va cogiendo cierta complejidad para alguien que no esté muy familiarizado he hecho una guía en github haciendo un pequeño recopilatorio de lo que había publicado aquí y añadiendo más detalle sobre la parte de como programar el ESP32.
3) Para evitar duplicidad de información (y posibles errores), los detalles los voy a ir publicando en github y aquí indicaré que hay actualización para quien la quiera revisar.
#7
Buen trabajo .muy completo

Usuarios navegando en este tema: 1 invitado(s)


Salto de foro: