Hace algunos días compre un pequeño kit de cultivo de hongos comestibles, precisamente de la especie Pleurotus ostreatus. El kit básicamente consta de un sustrato colonizado por el hongo y un rociador para regarlo. Los hongos son organismos que tienen una composición de agua cercana al 90%, por lo que es fundamental monitorear y controlar las condiciones del ambiente donde se desarrollarán.
Es mi primera experiencia en este tipo de cultivo, por lo que estoy experimentando leyendo la temperatura y humedad del ambiente y del sustrato.
Circuito electrónico
Los ensayos los estoy haciendo con una placa Arduino UNO, una pantalla LCD y dos sensores: DHT11 para monitorear humedad y temperatura ambiente y un sensor de humedad de suelo para monitorear el sustrato.
Como dije antes, ya que se trata de un experimento y seguramente sufra modificaciones, no monté ninguna placa de circuito impreso, está todo en una pequeña protoboard.
Para manejar el display LCD y simplificar el cableado utilice un módulo conversor paralelo/I2C de origen chino. El mismo permite operar todas las funciones de la pantalla tan solo ocupando dos pines de la placa Arduino. Es necesario utilizar la librería LiquidCrystal I2C para poder comunicarse con el módulo.
Código fuente
El código fuente para el Arduino es el siguiente. Notarán que tuve que generar el símbolo de grados ya que mi pantalla no lo soportaba.
/* Monitoreo de cultivo de hongos comestibles
https://www.automatismos-mdq.com.ar/
Diciembre de 2020
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHT dht(2, DHT11);
// carácter especial, grados
byte grados[] = {
B01110,
B01010,
B01110,
B00000,
B00000,
B00000,
B00000,
B00000,
};
void setup() {
lcd.begin();
lcd.backlight();
lcd.createChar(0, grados);
dht.begin();
}
void loop() {
//lectura de sensores
int sensorSustrato = analogRead(A0);
int humedad = dht.readHumidity();
int temperatura = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(temperatura);
lcd.write(0);
lcd.print("C | ");
lcd.print("H: ");
lcd.print(humedad);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("Sustrato: ");
lcd.setCursor(10, 1);
lcd.print(sensorSustrato);
delay(1000);
}
A futuro tengo planeado mejorar el sistema, por ejemplo me gustaría:
- Controlar una bomba de riego
- Conectar el sistema a Internet
- Diseñar una placa de circuito impreso
Por último algunas fotos del proceso.
Enlaces de interés
- Generador de caracteres especiales para LCD
- Arduino «a medida»
- Repositorio de Arduino
- Arduino para el control de robots didácticos
- Charla «Aprender y hacer electrónica»