Ecología urbana. La huella de
carbono.
Categoría: 2. Ciencia y tecnología.
En la ecología urbana existe el
concepto de servicio ambiental, que se refiere a los beneficios que aportan las
áreas verdes al medio ambiente en términos de fijación de carbono, generación
de oxígeno, e incluso la producción de biomasa que eventualmente puede
utilizarse para fabricar biocombustibles.
Kevin y col., 2013, mencionan que
las áreas verdes urbanas dedicadas a mantener poblaciones arbóreas pueden
almacenar o inmovilizar considerablemente mayores cantidades de carbono que las
áreas cubiertas con césped, las cuales a pesar de tener una gran productividad
en términos de biomasa, tienen la desventaja de que el carbono fijado es
rápidamente liberado en forma de CO2 tras su degradación biológica. Las zonas
urbanas son grandes consumidores de oxígeno por la combustión que mueve
transportes y maquinaria industrial, por lo cual, las áreas verdes urbanas son
importantes puntos de reposición, aunque parcial, del oxígeno consumido. Una tercera
forma de servicio ambiental es la posibilidad de destinar la biomasa generada
en áreas verdes urbanas para la fabricación de biocombustibles, de manera que
el ciclo del carbono se cierra en el tiempo presente, lo que no sucede con el
uso de combustible obtenido en depósitos fósiles.
Otra forma en que se puede
obtener servicios ambientales en las zonas urbanas es mediante el aumento de la
eficiencia de uso de la energía. Hay muchas formas en que se puede mejorar esta
eficiencia, mediante el uso de energía solar para precalentar el agua y reducir
el consumo de combustible para obtener la temperatura final, otra es la
instalación de celdas fotovoltaicas para sustituir al menos una fracción del
consumo eléctrico total, el uso de energía geotérmica para la calefacción de
interiores se está popularizando en ciudades de latitudes norte o sur más allá
de los trópicos. El uso de vehículos eléctricos (conectables) o híbridos
(conectables o no conectables) también es una forma de aumentar la eficiencia
en el consumo de energía en los medios de transporte.
La evaluación del ciclo de vida (life cycle assessment) que se realiza como parte del diseño de nuevos productos y procesos
industriales permite conocer el grado en que la fabricación, uso y disposición
final impacta en los diferentes componentes del medio ambiente, es decir, la
generación de contaminantes atmosféricos, generación de residuos sólidos no
reciclables, generación de residuos peligrosos no reutilizables y agua residual.
De esta manera, los productos que contengan mayor porcentaje de componentes
reciclables y reutilizables y cuya producción genere la menor cantidad neta de
contaminantes atmosféricos y agua residual, serán los más eficientes en
términos ambientales. El consumidor final se va a familiarizar paulatinamente
con esta información y podrá utilizarla como criterio antes de realizar la
adquisición. Uno de los primeros parámetros que el consumidor podrá utilizar
para la adquisición de un producto o servicio será el llamado huella de
carbono. Aunque en lo sucesivo se integrarán otros.
Los bonos de CO2 son un
instrumento financiero internacional que sirven para financiar proyectos
sustentables con recursos provenientes de empresas que por su naturaleza no
pueden evitar emisiones de contaminantes a la atmósfera. Así aportan recursos
para proyectos que secuestran carbono, proyectos que desplazan actividades que
emiten gases perjudiciales (gases de efecto invernadero, gases que dañan la
capa de ozono, gases que promueven la formación de ozono en las capas
inferiores de la atmósfera, como los compuestos orgánicos volátiles y los
óxidos de nitrógeno). Con esta medida se trata que las actividades
contaminantes obligadas, puedan reducir su huella de carbono de manera
indirecta.
Un concepto que sintetiza todos
los anteriores es el de huella de carbono, que incluso puede medirse. Dentro de
poco tiempo se tendrá la posibilidad de instalar una app en los teléfonos
inteligentes que nos permitirá medir nuestra huella de carbono individual
(carbon footprint).
Se estima que el 28 por ciento de las tierras agrícolas del mundo
producen cultivos que se desperdician. En el proceso, se despilfarran
250 km³ de agua y la huella de carbono de los alimentos producidos y no
consumidos se estima en 3,3 gigatoneladas de CO² equivalente (FAO, 2013 –
La huella del desperdicio de alimentos, impacto en los recursos
naturales)
Ejemplo de automatización.
Aumenta la eficiencia de tus
procesos y reduce tu huella de carbono.
En esta entrada se propone un
ejercicio sencillo o relativamente sencillo para hacer más eficiente el uso de
energía eléctrica en el popular pasatiempo de la acuariofilia o bien, con
algunas modificaciones, aplicarlo al cuidado de otras mascotas, como el
calentamiento del hábitat para reptiles. Se propone un control automatizado que
acciona la bomba de aire durante la mitad del tiempo, evitando mantenerla
encendida continuamente (la relación tiempo encendido/apagado puede variarse a
voluntad, según las necesidades particulares). En especies menos demandantes se
puede mantener apagada la bomba de aire durante la noche, lo cual también se
muestra en el control automático propuesto. El usuario puede identificar muchos
otros casos cotidianos en los que puede aplicarse este control automático.
El proyecto tiene como base un
pic programable (circuito integrado programable, pic). En este caso se propone
utilizar la tarjeta de desarrollo Arduino UNO (ATMEGA328) que cuenta con 13
entradas/salidas digitales y con 6 entradas analógicas. La asignación de pines
es como sigue:
A0 – entrada analógica con una
fotorresistencia de 2Mohm.
I/O 3 – salida digital con un
relevador de voltaje de 5V, 15A.
I/O 4 – salida digital con un LED
rojo indicador de noche.
I/O 5 – salida digital con un LED
verde indicador de noche.
I/O 6 – salida digital con un LED
rojo indicador de encendido del dispositivo conectado al relevador de voltaje
(bomba de aire de acuario).
Se escribieron tres versiones del
programa que se va a cargar en el pic programable. Uno utiliza la función
millis() para asignar el momento de encendido / apagado de los pines, con
pulsos de encendido / apagado de igual duración. El segundo utiliza la función
millis() para asignar el momento de encendido / apagado de los pines, con
pulsos de encendido / apagado de distinta duración. El tercero utiliza la
función delay() para asignar el momento de encendido / apagado de los pines,
con pulsos de encendido / apagado de duración igual o diferente duración, a
criterio del programador. La tercera forma del programa es la más simple y es
la más recomendable para quienes no han tenido contacto previo con este tipo de
programas. Los programas primero y segundo son más elaborados y permiten la
programación de un gran número de eventos sucediendo simultáneamente pero con
temporizaciones independientes unas de otras. En la práctica es la forma más
versátil de programar eventos, pero la complejidad se incrementa rápidamente a
medida que agregamos tareas al pic; aunque tiene la ventaja de que una vez que
se ha programado un bloque de pines, este ya no se modifica cuando se programan
los demás bloques.
El código para el primer programa
queda de la siguiente manera:
/*
Programa: HuellaDeCarbonoUno
Este programa asigna intervalos
de encendido / apagado de igual
duración (10 minutos)
Se utiliza la función millis()
para manejar el momento de
encendido / apagado.
*/
const int ledPin = 13;
const int pinRelay = 3;
const int pinLedDia = 4;
const int pinLedNoche = 5;
const int pinLedRelay = 6;
int valorIluminacion;
unsigned long previousMillis = 0;
unsigned long intervaloLed = 1000;
unsigned long relayIntervalo = 600000; // 10
minutos
unsigned long previousRelayMillis;
byte ledState = LOW;
byte estadoRelay = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(pinRelay, OUTPUT);
pinMode(pinLedDia, OUTPUT);
pinMode(pinLedNoche, OUTPUT);
pinMode(pinLedRelay, OUTPUT);
}
void loop()
{
unsigned long actualMillis = millis();
if(actualMillis - previousMillis > intervaloLed) {
previousMillis = actualMillis;
if
(ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(ledPin, ledState);
}
valorIluminacion = analogRead(A0);
if (valorIluminacion
> 764) {
digitalWrite(pinLedDia, HIGH);
digitalWrite(pinLedNoche, LOW);
if
(actualMillis - previousRelayMillis > relayIntervalo) {
previousRelayMillis = actualMillis;
if
(estadoRelay == LOW) {
estadoRelay = HIGH; }
else {
estadoRelay
= LOW; }
digitalWrite(pinRelay, estadoRelay);
digitalWrite(pinLedRelay, estadoRelay); } }
else {
digitalWrite(pinRelay, LOW);
digitalWrite(pinLedDia, LOW);
digitalWrite(pinLedNoche,
HIGH); }
}
Tamaño binario del sketch: 1286
bytes, de un máximo de 32256 bytes.
El código para la segunda versión
del programa queda de la siguiente manera:
/*
Programa: HuellaDeCarbonoDos
Este programa asigna intervalos
de encendido / apagado de distinta
duración.
Se utiliza la función millis()
para manejar el momento de
encendido / apagado.
*/
const int ledPin = 13;
const int pinRelay = 3;
const int pinLedDia = 4;
const int pinLedNoche = 5;
const int pinLedRelay = 6;
int valorIluminacion;
unsigned long previousMillis = 0;
unsigned long intervaloLed = 1000;
unsigned long relayIntervaloOn = 120000; // 2
minutos
unsigned long relayIntervaloOff = 480000; // 8 minutos
unsigned long previousRelayMillis;
byte ledState = LOW;
byte estadoRelay = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(pinRelay, OUTPUT);
pinMode(pinLedDia, OUTPUT);
pinMode(pinLedNoche, OUTPUT);
pinMode(pinLedRelay, OUTPUT);
}
void loop()
{
unsigned long actualMillis = millis();
if(actualMillis
- previousMillis > intervaloLed) { //
codigo para un bloque de pines
previousMillis = actualMillis;
if
(ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(ledPin,
ledState);
}
valorIluminacion = analogRead(A0);
if (valorIluminacion > 764)
{ // codigo para un segundo
bloque de pines
digitalWrite(pinLedDia, HIGH);
digitalWrite(pinLedNoche, LOW);
if (estadoRelay == HIGH) {
if (actualMillis - previousRelayMillis > relayIntervaloOff) {
previousRelayMillis = actualMillis;
estadoRelay = LOW;
digitalWrite(pinRelay, estadoRelay);
digitalWrite(pinLedRelay, estadoRelay);
} }
if
(estadoRelay == LOW) {
if (actualMillis - previousRelayMillis > relayIntervaloOn) {
previousRelayMillis = actualMillis;
estadoRelay = HIGH;
digitalWrite(pinRelay, estadoRelay);
digitalWrite(pinLedRelay, estadoRelay);
} } }
else {
digitalWrite(pinRelay, LOW);
digitalWrite(pinLedDia, LOW);
digitalWrite(pinLedNoche,
HIGH); }
}
Tamaño binario del sketch: 1386
bytes, de un máximo de 32256 bytes.
El código para la tercera versión
del programa queda de la siguiente manera:
/*
Programa: HuellaDeCarbonoTres
Este programa asigna intervalos
de encendido / apagado de distinta
duración.
Se utiliza la función delay()
para manejar el momento de
encendido / apagado.
*/
const int ledPin = 13;
const int pinRelay = 3;
const int pinLedDia = 4;
const int pinLedNoche = 5;
const int pinLedRelay = 6;
int valorIluminacion;
// unsigned long previousMillis = 0;
// unsigned long intervaloLed = 1000;
// unsigned long relayIntervaloOn = 120000; //
2 minutos
// unsigned long relayIntervaloOff =
480000; // 8 minutos
// unsigned long previousRelayMillis;
byte ledState = LOW;
// byte estadoRelay = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(pinRelay, OUTPUT);
pinMode(pinLedDia, OUTPUT);
pinMode(pinLedNoche, OUTPUT);
pinMode(pinLedRelay, OUTPUT);
}
void loop()
{
if
(ledState == HIGH) {
ledState = LOW;
digitalWrite(ledPin, ledState); }
else {
ledState = HIGH;
digitalWrite(ledPin, ledState); }
valorIluminacion
= analogRead(A0);
if (valorIluminacion > 764)
{
digitalWrite(pinRelay, HIGH);
digitalWrite(pinLedRelay, HIGH);
delay(480000);
digitalWrite(pinRelay, LOW);
digitalWrite(pinLedRelay, LOW);
delay(120000); }
else {
digitalWrite(pinRelay, LOW);
digitalWrite(pinLedDia, LOW);
digitalWrite(pinLedNoche,
HIGH); }
}
Tamaño binario del sketch: 1272
bytes, de un máximo de 32256 bytes.
La lectura analógica para
determinar si es de día o de noche, se utilizó como criterio un valor de
3(255)-1=764, que sería el 75% de la iluminación máxima detectada por el
sensor. Este valor se tendría que ajustar (entre 0 y 1023 o 4(255)-1=1023)
dependiendo de la ubicación del sensor.
El pin de entrada analógica (A0)
no requiere declaración dentro de la función void setup(), pero si se desea, se
le puede asignar un nombre de variable del mismo modo que se hizo con las
salidas (o entradas, según sea el caso) digitales.
Como puede verse, estos sencillos
programas ocupan muy poca memoria en el chip programable, por lo que se puede
utilizar pines adicionales pines para manejar otras funciones, según se desee.
En el caso de un hábitat para reptiles puede ser útil colocar un termistor para
regular la temperatura, encendiendo y apagando la calefacción, a manera de un
termostato.
El circuito electrónico
Para realizar el montaje de los
diferentes circuitos electrónicos que comprende este pequeño proyecto se
recomienda utilizar, como ya se mencionó, la tarjeta de desarrollo Arduino UNO
y una tabla de montaje de prototipos (protoboard, como es su nombre en inglés).
Si se trabaja con la tarjeta de desarrollo MSP430G2xx3, de Texas Instruments,
utilizando el software Energia, se puede utilizar el mismo código, con algunas
pequeñas modificaciones en la declaración de las entradas/salidas digitales y
la entrada analógica, también se tendrán que utilizar los componentes electrónicos
apropiados, como un relevador que trabaje a 3.3.Vcc y los valores apropiados de
resistencias para los led’s.
El diodo en D1 puede ser un 1N4004.
Bibliografía
Kevin JG., Avila, JML., and Edmondson JL. 2013.
Managing urban ecosystems for goods and services. Journal of Applied Ecology
2013:1-11.
Arduino. Sitio web. http://www.arduino.cc/.