30 September, 2016

Centralized control Solar-Biomass mixed system with Arduino and TFT Shield


In this post I will share with you the improvements I've made to our biomass/Solar mixed system , which is basically to change the obsolete control system for thermostats with a centralized system based on Arduino fully customizable, flexible and expandable; we will see the assembly, components and source code.

Applied materials:

   1 - Arduino MEGA 2560 (specifically I used a Funduino clone ), because the TFT shield does not leave me enough inputs / outputs Free UNO R3.
   2 - Touch Screen TFT 2.4 "  McuFriend , which will give us great freedom when it comes to display information on screen libraries that have worked best for me. Are the BUHOSOFT ; here you can download the version I used.
   3 - relays to activate solenoid valves, with a fed to 5V that can handle 230V and 10A worth us to spare.Not to stress regulator Arduino board, the food independently with other L7805 regulator (handles between 7-30V and 1.5A max). Being so low consumption, nor need a heatsink:


   - A speaker-buzzer for alarm warning in case of problems, which operates between 7 and 12V 100dB, enough.
   - A relay SSR DC-DC to activate the buzzer ; only consumes between 3 and 25mA so we can turn directly to the Arduino pin. I used one of solid state more than anything because I had left the other, butsince it is an element that is to be activated soon, you better go to a mechanical more economical and compact:


Another solid state relay AC-DC to activate the motor . Of at least 10A, will be the element that suffer the continuous activations, so that the durability and reliability of solid state relay will ensure a long maintenance free I've added a heatsink for if heated , although I have exceeded its size as I then checked, but better to err;).

   - 4 sensors NTC 6K8 (at 25 ohm resistance is 6K8) plus 4 resistors 6K8 necessary, obtained from some old batteries, which measures temperatures between -25 and 125 ° C, ideal for the temperatures to be managed:

Such sensors are easy to get and set taking temperatures and resistance at two points (as I explained in the previous post ), these can be obtained from lithium batteries and large NI-MH ; the carry to regulate its temperature within safe margins, glued thereto. We also have them in batches very economical. Be sure that is the type that you have referred to in the schedule; in my case NTC (Negative Temperature Coefficient..); indicating rising temp. by lowering its resistance.
I preferred to use such sensors for price and convenience more than anything , instead of the usual transistors DS18B20, very common as well. 
Note that not suitable for very humid environments; water is conductive and would raise the temperature indicated incorrectly. To avoid possible problems with rain, water leakage, etc. can be isolated with "liquid silicone" a hotmelt or silicone standard l, as I have done.

Mounting elements and debugged the program

With a prototype card I connect the resistors and sensors, and I tested the data on screen and the feedback we debugged by series errors.
(For those who need it, when I can prepare the scheme with Fritzing to clarify the connections).


After a couple of days working properly, I connect the elements definitively:


For simplicity I have soldered directly 6K8 resistance of each sensor (analog pins 11 to 14) behind the plate:


In the following video I try running surface ; when we launched last settings:


Replacing the old system

The first is to identify each cable ; the previous configuration they were not, and I would have saved time; between sensors, power, and engine elecroválvulas are a few wires and there can be errors:


We take the same box, leaving the screen in the center window slightly enlarging the alarm at the top:


I distributed all over the box, which had ample depth for all elements:


In the next picture it can not be seen, but there is a USB cable plate hanging out for possible updates and final program debugging :



Replace the temperature sensors

Those who had placed could have served, but since thermostats are compatible with a limited range of sensors, I preferred to reserve them to remove them.
To replace the tank, insert the new one in its place ; the tank has a housing 6 mm. x 50 cm long where the sensor is inserted until the middle of the tank; the new sensor was introduced without difficulty, finer than the old one you see in the image:


Also change the sensor.  I could verify that after 7 years of use, is maintained in good condition, hardly have whitened polycarbonate, and thanks to the high temperatures fends off any moss or plant that wants to develop:


I used to change the board of the trap, which was already badly corroded.



In the image below we have placed the sensor on top of the hot water outlet of the solar collector(more details on its construction inputs), with white tape and more flanges. After white silicone will place above to isolate it better from the outside and does not distort the temperatures in winter, keeping the temperature as close to the actual water pipe.



The program is as follows (available in github) :
/*
 * ARCHIVO: Control sistema térmico mixto biomasa-solar
 *   AUTOR: David Losada
 *   FECHA: 8/08/2016
 *     URL: http://miqueridopinwino.blogspot.com.es/2016/08/control-centralizado-del-sistema-mixto-biomasa-solar-con-Arduino.html
 *   Versión 1.65 (7/01/17)
 *   - Se ha corregido el código de desconexión en caso de biomasa encendida, para evitar apagar el motor demasiado pronto con brasas
 *   - Se añade aviso de excesiva diferencia entre sondas, indicando en rojo la temperatura y activando alarma
 *   - Mejorada la alarma; se hace intermitente.
 *   - Añadido un 5º termistor en el serpentin biomasa (parte baja) por seguridad; Biomasa2, a veces se calienta antes en la parte inferior
 *   - Corregida la contabilización de horas funcionamiento
 *   - Cambiado el orden en pantalla
 *   - Se indican los KWh ahorrados por energía renovable :) (aproximado)
 *   - Cambiada la forma en que se comprueban temperaturas, dando prioridad real a biomasa (o estamos jodidos)
 *   - Ahora se activa cada 15 días la válvula de enfriado para evitar su agarrotamiento
 *   - Corregidos varios errores
 *   - 10/12/16 Mejorados varios puntos; no contabilizaba horas de motor, y la comprobación de temperaturas no era óptima con depósito
 *   - 12/12/16 Mejorado el código: añadido código para dormir el procesador, reducir los refrescos a lo mínimo necesario y sensor de pellets futuro
 *   - 15/12/16 Corregida la evaluación del tiempo
 *   - 07/01/16 Corregido error en la condición de apagado del motor en caso de activación por el captador solar
 *
 * OBJETIVO: Prototipo control de sistema casero mixto biomasa-solar térmica
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 as published by the Free Software Foundation.
 */

// Uses TFTLCD sketch that has been Refurbished by BUHOSOFT
// If using an Arduino Mega make sure to use its hardware SPI pins, OR make
// sure the SD library is configured for 'soft' SPI in the file Sd2Card.h.

// Original code provided by Smoke And Wires
// http://www.smokeandwires.co.nz
// This code has been taken from the Adafruit TFT Library and modified
//  by us for use with our TFT Shields / Modules
// For original code / licensing please refer to
// https://github.com/adafruit/TFTLCD-Library

// adapted sketch by niq_ro from http://arduinotehniq.blogspot.com/
// ver. 1m5 - 13.11.2014, Craiova - Romania

//Librerías para dormir al procesador y ahorrar energía cuando no hace nada
#include 
#include 
#include 

//Librerías para la pantalla gráfica
#include 
#include 
#include 
#include 
#include 
#include 

#if defined(__SAM3X8E__)
    #undef __FlashStringHelper::F(string_literal)
    #define F(string_literal) string_literal
#endif

// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
// #define LCD_CS A3 // Chip Select goes to Analog 3
// #define LCD_CD A2 // Command/Data goes to Analog 2
// #define LCD_WR A1 // LCD Write goes to Analog 1
// #define LCD_RD A0 // LCD Read goes to Analog 0

// #define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

// When using the BREAKOUT BOARD only, use these 8 data lines to the LCD:
// For the Arduino Uno, Duemilanove, Diecimila, etc.:
//   D0 connects to digital pin 8  (Notice these are
//   D1 connects to digital pin 9   NOT in order!)
//   D2 connects to digital pin 2
//   D3 connects to digital pin 3
//   D4 connects to digital pin 4
//   D5 connects to digital pin 5
//   D6 connects to digital pin 6
//   D7 connects to digital pin 7
// For the Arduino Mega, use digital pins 22 through 29
// (on the 2-row header at the end of the board).

//#define DEBUG
#include 
#include  //Para usar la memoria EEPROM
//Arduino con Tiny RTC I2C http://zygzax.com
//#include 
//#include 
#include 

Isolating better tank

And finally, I improved isolation tank 150 lts with an old blanket and remains of an insulating sheet with aluminum layer (here recycles all) to protect it from the sun 's UV. This is essential if the deposit is in outside , it means lower losses, which in winter can be very high. to "hold" blankets have used pieces of old bike tire pressure tucked against the wall; to be elastic, it remains in place.






At the bottom I have also placed, but leaving easy access for maintenance of the deposit.
And finally I have secured with duct tape:



Maintenance of the expansion vessel

Every three years there to check the expansion vessel as it loses any tire pressure and stops properly perform its function of maintaining the pressure to 1.5 bar.
Below is a valve and vacuum we must fill air at a pressure of between 0.5 and 1 bar (takes more pressure to get water, so we must find a way that half full of water has 1.5 bar ). I spent a bit and did not come to get water, so it Regulate connected and letting out some pressure until it reached 10 kg approx (is 24 liters) and maintained between 1.5 and 2 bars .
The glass of my installation whole bottom was oxidized to splashed rain over the years, so I sanded with brushes sheets and drill and you've applied paint "forging" anti-oxide(carrying metal particles that severely limit the passage moisture), her anti - rust no need fora previous hand, it is very durable .



More info: Practical Guide to installing a solar thermal system Technical Manual installation Solar thermal energy

No comments :

Post a Comment