sábado, 12 de diciembre de 2015

Caldera WiFi

  Una caldera de Gasoil debe ser uno de los aparatos menos tecnológicos que quedan, pero como está tan de moda lo de "Internet de las cosas", vamos a darle un poco de inteligencia a la vieja caldera.
  Después de mucho tiempo invertido en el sistema de control de la caldera de Gasoil, varias entradas en este blog (aquí la última parte) y un montón de cacharros conectados para, al final, abandonarlo despues de casi dos años, vuelvo con un nuevo intento.
  Un sistema mucho más sencillo que se basa en una página web "Internet of Things" donde se registran todos los datos recogidos de la caldera y que simplifica muchísimo el sistema.
  En esencia es un microcontrolador con conexión wifi y tres sensores, como no hay cables para la conexión de red, todo es más sencillo y más limpio.
  Se trata de un ESP8266, un micro potente y capaz que en un encapsulado realmente pequeño integra, además de varios de los periféricos de un arduino, la capacidad de acceder a redes WiFi sin conectar hardware adicional, además se puede programar desde el IDE de Arduino, instalando una extensión como se explica aquí, lo que abre un montón de posibilidades.

  Esta historia empezó con el objetivo de tener la posibilidad de poder encender o apagar la caldera en remoto, desde el móvil o desde cualquier sitio con acceso a internet, pero una vez vistas las posibilidades que ofrece el cacharro junto con la página de ThingSpeak, se convirtió en algo mucho más completo, resumen de características:

  • Medición contínua del nivel de combustible, con envío de email automáticamente cuando se alcanzan unos niveles determinados.
  • Medición de:
    • Temperatura exterior.
    • Nivel de humedad relativa exterior.
    • Presión atmosférica.  
  • Capacidad de arranque/paro remoto.
  Además de las capacidades que añade ThingSpeak de registrar todos los datos que se le envien desde el micro, tenemos algunas variables adicionales calculadas en la nube y otras consultadas como la velocidad de viento, así tenemos:
  • Sensación térmica (calculada según la temperatura y la velocidad del viento).
  • Punto de rocío (calculada en base a la temperatura y humedad).
La velocidad del viento la consulto a Openweather.org programando un request ThngHTTP desde la página de Thingspeak.



   Al utilizar ThingSpeak no hace falta ni el reloj en tiempo real ni la tarjeta SD para guardar las lecturas, la plataforma en la nube que es ThingSpeak ya se ocupa de asociar a cada lectura la fecha y la hora correspondiente y de guardar las lecturas, según ellos sin límite de espacio (sí hay un límite en cuanto a la frecuencia de refresco que no puede ser en intervalos menores de 15 segundos).
  Hay un acceso público con algo menos de información aquí, donde podéis consultar datos en tiempo real y ver la temperatura o humedad en la Sierra antes de venir.

  Montaje:


  El ESP-12 (la versión del ESP8266 que estoy usando) es realmente pequeño, tanto que los pines están a menor distancia que la normal en los zócalos de circuitos integrados o de las protoboard, con lo que hay que buscar una forma de adaptarlo, yo utilicé una fila de pines estándar por cada lado soldados con unos trocitos de cobre, de los que se recortan de resistencias o condensadores.
Mide aproximadamente centímetro y medio por dos y medio.

  Una vez tenemos ya los pines  a la distancia estándar, ya lo podemos pinchar en la placa de prototipos y empezar a hacer pruebas:
  

  Como se puede ver en el prototipo hay varios sensores que pueden medir temperaturas, pero sólo se utiliza el BMP-180 para presión y temperatura, después de tener varios funcionando en paralelo, descarté el DS18b20, el DHT se utiliza sólo para la lectura de humedad, ya que su resolución de temperatura es muy pobre.
  El sensor de distancia por ultrasonidos se pone en la boca de llenado del tanque y nos mide la distancia hasta la superficie, con lo que podemos calcular la capacidad restante, está instalado como describía hace más de dos años aquí, y por cierto, está impecable, no le ha afectado ni la corrosión, ni los vapores del gasoil, ni nada parecido como se decía en algún comentario.
  Como este sensor funciona a 5V (el resto funcionan a 3,3V) necesitamos un divisor de tensión en su salida para adaptarlo a los niveles de entrada del ESP, que son las dos resistencias en la linea Echo del sensor.
  Los sensores de temperatura, humedad  y de presión atmosférica están, obviamente, en el exterior, al igual que el del tanque de gasoil que está en el trastero, todo cableado con un único cable UTP.
La placa ya funcionando.

Esquema:




Programa:


El programa está estructurado en funciones, dentro de la función principal, loop, se hace una lectura de cada sensor a través de una función de filtro, llamada medaianamodal, que hace 30 lecturas del sensor correspondiente, las ordena, descarta las de los extremos y calcula la media aritmética de los 10 valores centrales.
 Luego se comprueba el tiempo que ha pasado desde la última actualización y si han pasado más de 3 minutos, se llama a la función que sube los datos a ThingSpeak, además se comprueba si el nivel de combustible llega a unos valores que son:
   500l, envía un correo simplemente diciendo el nivel y las lecturas actuales.
   300l, envía un correo avisando de que el nivel está al 30%.
   200l, envía correo con el nivel al 20%.
   100l, envía correo avisando que queda un 10% y pidiendo repostar.
   50l, envía correo avisando que queda un 5% y pidiendo repostaje URGENTE.

  La rutina para enviar el correo está basada en la de jeanotP1314, en Instructables, Gracias por compartirlo, es un trabajo fantástico.
   Se comprueba si hay algún comando para ejecutar con la función getTalkBack() y se actúa sobre la salida que alimenta el relé.
  Y eso es todo el loop, el resto son funciones para ejecutar las acciones comentadas.

   El programa os lo dejo aquí.

  Hay una parte de programa que vive en la nube, es el programa que consulta la velocidad del viento en Openweathermap.org, calcula los datos de punto de rocio y sensación térmica y graba los datos en los canales correspondientes, es un programa de Matlab Analisys que os dejo en un archivo de texto aquí para copiar y pegar.
  Hay además una temporización, un TimeControl como le llaman en ThingSpeak que ejecuta el análisis cada 20 minutos.
  Por cierto, el cálculo de la sensación térmica está basado en la fórmula que os dejo en esta hoja excell, y que se puede imprimir para ver de un vistazo la sensación térmica.

Programa, esquema y demás aquí.

Conclusión:

  El utilizar una plataforma de almacenamiento en la nube como ThingSpeak, facilita mucho estos proyectos, además tiene varias funcionalidades que se pueden utilizar para ejecutar acciones cuando se den unas condiciones, p.e que la temperatura alcance un valor o cuando pase un tiempo determinado, para analizar los datos, etc.
  Por supuesto el montaje se puede utilizar para otras cosas, en este caso es una caldera pero igualmente se puede controlar un aire acondicionado, se puede utilizar otras salidas adicionales o podemos utilizar otros comandos, como veis en el programa, los comandos son cadenas de texto, no simplemente unos o ceros, con lo cual podemos enviar p.e. un comando que indique la temperatura que queremos y que el sistema funcione como un termostato, o un comando que indique el tiempo que queremos que esté encendida, o... las posibilidades son infinitas.
  Otra cosa que se puede hacer muy fácilmente es que el correo de aviso de nivel de combustible se envie directamente al proveedor para que venga a reponer, o que se genere un correo de alarma en caso de que se den otras circunstancias.
  En fin, se abren un montón de posibilidades.


lunes, 22 de junio de 2015

Para qué es el autoclave?

F5j.es


Esta es la página de los "fabricantes" de veleros eléctricos que le están dando uso al autoclave.
Espero que ganen muchas competiciones y sigamos evolucionando el invento, ¿alguien sabe si podríamos fabricar otras piezas de Fibra de Carbono?  Un cuadro de bici quizás?
El autoclave.
Gracias Santiago, Gracias Paco.

lunes, 20 de abril de 2015

Autoclave (Horno para curar fibra de carbono)

    Me dice mi amigo Santiago que necesita un sistema de control para poder fabricar piezas de fibra de carbono para sus aviones.
   El proceso de fabricación necesita unas condiciones de presión y temperatura determinadas además de controlar los tiempos de curado, básicamente consiste en preparar los perfiles del ala y forrarlos con las capas de fibra de carbono, resina y kevlar, meterlo en una bolsa de plástico y hacer el vacio para que la presión atmosférica oprima el montaje en todas direcciones.
   Además se sube la temperatura y se mantiene en esas condiciones el tiempo que necesite.
   Hay otras etapas de curado, de endurecimiento y demás, así que el sistema ha de ser capaz de poder ejecutar cada etapa con unos valores diferentes.

Prototipo del control funcionando.