Hace un tiempo leí un artículo que despertó cierto interés en mí, el artículo hablaba sobre la escasez de agua en el planeta, algo de lo que no somos conscientes aún los seres humanos y que ya afecta a todos los continentes. Cada día se desperdician cantidades incalculables de este recurso natural, que es una fuente de vida, y uno de los motivos es la cantidad de campos inundados por falta de control en el riego.
Pues bien, a raíz de este artículo, y acordarme de lo riquísimos que saben siempre unos tomates de huerta, y no los comprados en cualquier supermercado…se me ocurrió la idea de fabricarme mi propio “microhuerto domótico”.
Con ello, ayudaría a controlar el consumo de agua, fomentando su ahorro, puesto que se riega en función de la humedad deseada, gastando por tanto, el agua justo y necesario. Aunque en este caso, el ahorro de agua es mínimo, comparado con el resto del mundo, aporto ese granito de arena.
Además esto me sirvió como proyecto final para dar por finiquitado el ciclo de grado superior ASIR (Administración de Sistemas Informáticos en Red), cursado en el Centro Don Bosco (Villamuriel de Cerrato- Palencia), del que solo puedo dar calificativos buenos. No sólo te hacen crecer a nivel profesional, sino también a nivel personal, algo importantísimo y que en los últimos años tanto escasea.
Y bien, después de todo esto, vamos a lo que nos concierne. Para el desarrollo del huerto tenía que pensar primeramente que quería conseguir, y una vez hecho esto, como conseguirlo. La idea principal era construir un sistema de riego automático, controlado por diferentes tipos de sensores, de forma que el sistema sea capaz de tomar decisiones por sí mismo, reduciendo así los cuidados. Para ello se controlarían las condiciones del ambiente y la necesidad de riego que tiene la tierra en función de su humedad. Cuando las condiciones sean óptimas comienza el riego, siempre y cuando exista agua en el depósito.
Además quería que los datos se almacenaran de forma periódica en una base de datos, y a través de una aplicación Web, con nuestras credenciales poder acceder y ver un histórico gráfico de datos.
Para conseguir esto básicamente he utilizado:
- Sensores
- Microcontrolador
- Servidor
El sistema utiliza diferentes tipos de sensores, porque nos interesa controlar diversos valores. En mi caso me interesan sobre todo los valores de la humedad de la tierra para lo que uso un sensor conocido como YL-69, realmente se trata de dos picas que se encuentran enterradas en tierra de manera que controlando la resistencia de la tierra puedo conocer la humedad.
Para recoger los valores de humedad y temperatura ambiente utilizo un sensor DHT11.
De la temperatura del suelo se encarga el DS18B20, un sensor sumergible y resistente a la humedad, que se usará para controlar la temperatura de la tierra.
Por seguridad, y para evitar que las bombas funcionen en vacío, y puedan dañarse, es imprescindible controlar la cantidad de agua que hay en el depósito, y esto lo consigo con un sensor de nivel de marca Funduino.
Por último controlar si hay luz o no, para evitar el riego de noche. Para ello he usado un sensor de luz, también conocido como resistencia LDR.
He de decir que son sensores muy básicos con un precio mínimo, por tanto, no podemos esperar una precisión increíble. El precio de cada uno de ellos puede variar dependiendo del sitio donde se compre, pero podemos encontrar diferencias que a lo sumo llegan a 5€. En mi caso opté por usar la conocida web de Ebay, de donde proviene todo el material. La mayoría de productos los compré directamente a países asiáticos, por lo que no superaron los 3€/unidad.
Mi recomendación, es que para trabajos más críticos se utilicen sensores de mayor calidad, ya que la calidad y precisión de los mismos va ligada a su precio.
El encargado de recoger todos estos valores y tomar las acciones necesarias es un sistema Arduino. Éste es el microcontrolador ya mencionado. Para quien no lo sepa, Arduino es una placa con múltiples entradas y salidas gestionadas por un microcontrolador programable de marca Atmel. Hay una gran variedad de placas Arduino pero en mi caso opté por usar la placa Leonardo. Este sistema ha sido programado para recoger datos, actuar en función de los valores de dichos datos, y en última instancia se encarga de mandarlos a un servidor.
Aquí se muestra una parte del código encargado de recoger los datos, y enviarlos por el puerto serie.
![]() |
| Sensores Utilizados |
He de decir que son sensores muy básicos con un precio mínimo, por tanto, no podemos esperar una precisión increíble. El precio de cada uno de ellos puede variar dependiendo del sitio donde se compre, pero podemos encontrar diferencias que a lo sumo llegan a 5€. En mi caso opté por usar la conocida web de Ebay, de donde proviene todo el material. La mayoría de productos los compré directamente a países asiáticos, por lo que no superaron los 3€/unidad.
Mi recomendación, es que para trabajos más críticos se utilicen sensores de mayor calidad, ya que la calidad y precisión de los mismos va ligada a su precio.
El encargado de recoger todos estos valores y tomar las acciones necesarias es un sistema Arduino. Éste es el microcontrolador ya mencionado. Para quien no lo sepa, Arduino es una placa con múltiples entradas y salidas gestionadas por un microcontrolador programable de marca Atmel. Hay una gran variedad de placas Arduino pero en mi caso opté por usar la placa Leonardo. Este sistema ha sido programado para recoger datos, actuar en función de los valores de dichos datos, y en última instancia se encarga de mandarlos a un servidor.
Aquí se muestra una parte del código encargado de recoger los datos, y enviarlos por el puerto serie.
Como servidor he optado por una Raspberry PI, este pequeño ordenador que seguramente muchos ya conoceréis, lleva en mi caso, una distribución de Linux llamada Raspbian, basada en Debian. Aquí se almacenará nuestra Base de Datos, y además hará de Servidor Web. Opté por usar una Raspberry por su perfecta compatibilidad junto a Arduino, por las grandes posibilidades que ofrece a pesar de su escaso hardware, y muy importante, por su bajo coste.
En este mini pc hay un Servidor Web Apache funcionando junto con MySQL. Además para que Arduino y Raspberry se comuniquen entre sí, programé un script en Python, que se encarga de recibir los datos por el puerto Serie que Arduino está enviando de forma constante. Básicamente este script recibe los datos, se conecta con nuestra Base de Datos e inserta los datos.
Para que esto se hiciera de forma periódica pero no constante, utilicé la herramienta Cron integrada en Raspbian, de manera que cada “X” minutos se ejecute el script en Python.
Para la visualización de los datos he desarrollado una aplicación Web sencilla, programada principalmente en Php, junto con pequeñas funciones en Javascript para controlar y validar ciertos campos. Además en el aspecto visual me inicié en el framework Bootstrap, para conseguir una Web fácilmente adaptable a múltiples dispositivos y que ofrece una gran profesionalidad. También utilicé la librería HighCharts para la creación de gráficas y así conseguir visualización de los datos muy atractiva.
Es muy importante que si le damos salida a internet nos cercioremos de que está seguro. Para ello he modificado el archivo de configuración de Apache, para que ante un ataque muestre la mínima información posible sobre el servidor. Además me encargué de encriptar el tráfico entre cliente y servidor mediante certificados SSL, y he forzado para que el acceso siempre sea HTTPS.
Esta imagen muestra un esquema de los elementos que intervienen y la forma de interactuar entre ellos.


Por último, paso a detallar el costo total del sistema:
Elemento
|
Unidades
|
Precio
unitario
|
Precio
total
|
Arduino Mega
2560 Rev.3
|
1
|
19€
|
19€
|
Raspberry Pi
|
1
|
35€
|
35€
|
Sensor de
humedad de tierra YL-69
|
2
|
1,44€
|
2,84€
|
Sensor de
temperatura y humedad ambiente DTH-11
|
1
|
1,90€
|
1,90€
|
Sensor de luz
LDR
|
1
|
0,70€
|
0,70€
|
Sensor de
temperatura de tierra
|
2
|
2,99€
|
5,98€
|
Sensor de nivel
de agua
|
1
|
3,50€
|
3,50€
|
Placa de 4
relés 5V-220V
|
1
|
11,50€
|
11,50€
|
Bombas de
agua
|
2
|
6,95€
|
12,90€
|
Protoboard
|
1
|
2,50€
|
2,50€
|
Resistencias
de pull-up de diferentes valores
|
12
|
0,20€
|
2,40€
|
Cableado y
conectores
|
-
|
5,50€
|
5,50€
|
Leds de
diferentes colores
|
15
|
0,16€
|
2,40€
|
Bandeja de
plástico
|
1
|
4,50€
|
4,50€
|
Piezas de
policarbonato
|
2
|
1,85€
|
3,70€
|
Recipientes
para depósito de agua y electrónica
|
2
|
1,80€
|
3,60€
|
Tarjeta
SD para Raspberry PI
|
1
|
8€
|
8€
|
Tubos de
goteo
|
2
|
0,70€
|
1,40€
|
Plantas
|
6
|
0,70€
|
4,20€
|
Fuente de alimentación
220V
|
1
|
25€
|
25€
|
PRECIO
TOTAL
|
156,52€
|
||
*** Todos los precios llevan incluido el IVA y los gastos de transporte asociados en los componentes pedidos por internet.
Artículo por cortesía de: Carolina Herrero






















