Lo que te voy a enseñar ahora no es para nada necesario para el cultivo de setas. Hasta hay setas muy fáciles de cultivar, como las setas ostra, que salen aunque pases de ellas, así que si que no te interesa la programación ni la electrónica puedes saltarte esta entrada.
Si sigues leyendo entiendo que es porque eres igual de nerd y geek que yo, así que allá vamos.
Materiales
Los precios pueden variar dependiendo de la tienda pero, como siempre, los más baratos los vais a encontrar en tiendas similares a Aliexpress. Estoy usando esos precios de referencia para que veáis cuál sería el presupuesto más bajo, pero mis componentes vienen de diferentes tiendas españolas, locales y europeas, como AZ-Delivery, electricistas locales y bazares. Tirando por lo bajo los costes mínimos se aproximan a 50€, pero tened en cuenta que todos los materiales son reutilizables en nuevos proyectos.
- Caja de conexiones. 5€.

- Placa arduino (cualquiera que tenga los pines necesarios). Por ejemplo una Arduino UNO (30€). Pero si no quieres gastar tanto dinero puedes escoger una copia como Elegoo por 15€, o ir a aliexpress y pillarlas por aún menos dinero (pero puede que no duren tanto tiempo). En mi caso he usado Arduino UNO porque ya la tenía por casa.

- Pantalla LCD1602 con adaptador (para reducir el cableado, importante que venga ya soldada a la pantalla. Es esa plaquita negra que hay detrás). 3€.

- Módulo DHT11. Sensor de temperatura y humedad. 3€.

- Módulo MQ135. Sensor de gases y calidad de aire. 3€.

- Módulo de relé. 2,5€.

- Ventilador de 8x8cm. 2€.

- Regleta eléctrica. 1€.

- Cables para componentes electrónicos. (Macho-macho y macho-hembra). ¿5€ el pack?

- Cable de corriente de 9v (no he comprobado si funciona con menos voltios). No me la jugaba comprando uno barato, gastad un poco de dinero en esto, que es lo que os puede salvar de quemar vuestra casa. ¿10€? Aunque es probable que tengáis ya uno tirado por ahí de algún cacharro que se os haya roto.

El circuito

En el esquema anterior, los cables negros son los de toma de tierra (pines encontrados en la placa y en los sensores con nombres como GND o DC-). Los cables rojos son los cables de corriente (pines encontrados en la placa y en los sensores con nombres como 5V, VVC o DC+).
Todos estos cables van empalmados en una regleta eléctrica. Por un lado empalmamos todos los cables de corriente y a su lado todos los cables de toma tierra. Y en los extremos contrarios introducimos un cable que va al pin 5V y otro al pin GND (tierra) de la placa.
La única excepción es el cable de corriente del ventilador, que va introducido en el relé en su pin NO. Del conector COM del relé tiene que salir otro cable que si va empalmado con el resto de cables de 5V. De esta forma el relé puede cerrar o abrir la corriente para hacer funcionar el ventilador.
El resto de cables son cables de datos:
- DHT11: tiene un único pin de data digital. Va conectado al pin D2 de la placa.
- MQ135: tiene dos pines, uno de data digital y otro analógico. El digital va al pin D3 de la placa, y el analógico al A0.
- Relé: tiene un pin de datos digitales. Va conectado al D4. Es el que envía la orden de abrir o cerrar el circuito del ventilador.
- Pantalla LCD: tiene dos cables de datos que van conectados al A4 y al A5.
Dejo en tus manos el montaje final. En mi caso he usado una caja de almacenaje de plástico de 25 litros a la que he hecho unos agujeros para el ventilador y para poner filtros de aire.

El código
En resumen la idea es que los sensores envíen datos a la placa y esta los analice para ver si debe encender la ventilación o no. Además esos datos se muestran en una pantalla LCD para tener un mayor control de la situación del cultivo.
#include <SimpleDHT.h>
#include <LiquidCrystal_I2C.h>
// Constantes
const int PIN_DHT11 = 2; // Pin digital temperatura y humedad
const int PIN_RELE = 4; // Pin digital rele ventiladores
const int VALOR_CALIDAD_AIRE = 60; // Valor calidad aire
#define MQ_135 (0) // Analogico gases (A0)
// Inicializamos objetos
LiquidCrystal_I2C lcd(0x27, 16, 2);
SimpleDHT11 dht11(PIN_DHT11);
// Variables
String stringTempHumedad = String(16);
String stringGas = String(16);
int valorCalidadAire = 0;
void setup() {
Serial.begin(9600);
iniciarLCD();
iniciarSensorGases();
iniciarRele();
}
void loop() {
lcd.clear();
Serial.println("=================================");
lecturaTemperaturaHumedad();
lecturaGas();
lcd.setCursor(0, 0);
lcd.print(stringTempHumedad);
lcd.setCursor(0, 1);
lcd.print(stringGas);
controlVentiladores();
delay(1500); // DHT11 sampling rate is 1HZ.
}
void controlVentiladores() {
if (valorCalidadAire > VALOR_CALIDAD_AIRE) {
digitalWrite(PIN_RELE, HIGH);
} else {
digitalWrite(PIN_RELE, LOW);
}
}
void iniciarRele() {
// Inicializar el pin del rele
pinMode(PIN_RELE, OUTPUT);
}
void iniciarLCD() {
// Inicializar la pantalla LCD
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("Iniciando...");
delay(2000);
}
void iniciarSensorGases() {
lcd.clear();
lcd.print("Calentando...");
delay(2000);
}
void lecturaTemperaturaHumedad() {
float temperature = 0;
float humidity = 0;
int err = SimpleDHTErrSuccess;
if((err=dht11.read2(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess){
Serial.print("Read DHT11 failed, err=");
Serial.println(err);
delay(2000);
return;
}
stringTempHumedad = ("T: " + String((int) temperature) + (char)223 + "C H: " + String((int) humidity) + "%");
Serial.println("T: " + String((int) temperature) + "C H: " + String((int) humidity) + "%");
}
void lecturaGas() {
String calidadAire = String(34);
calidadAire = analogRead(MQ_135);
valorCalidadAire = atoi(calidadAire.c_str());
stringGas="CO2: " + calidadAire + "ppm";
Serial.println(stringGas);
}
(Coged con pinzas los valores que muestro de la calidad de aire. Aún estoy pegándome con la documentación del sensor…).
Para instalar este programa en la placa necesitáis instalar en un ordenador el programa oficial de Arduino. Una vez instalado el proceso es muy fácil. Conectáis vuestra placa al ordenador mediante un cable USB como el de una impresora (de hecho yo uso el de mi impresora).

Después escogéis la placa en el desplegable superior, pegáis el código, usáis el botón de check para validarlo y el botón de la flechita para cargarlo en vuestra placa. Y si todo va bien debería funcionar =). Puede que os exija que os instaléis las librerías, en ese caso podéis buscarlas por nombre en el library manager. Las librerías son SimpleDHT y LiquidCrystal_I2C.

Deja una respuesta