Podcast: Descargar (42.7MB)
En el capítulo de hoy voy a hablar, además de Arduino, de otra de mis pasiones secretas, las plantas. En mi familia, siempre hemos tenido una larga trayectoria relacionada con el reino vegetal. Mis abuelos eran unos apasionados de las plantas, mis padres han regentado una floristería y yo siempre he estado rodeado de plantas y árboles. En la terraza de mi casa, tengo más de 25 plantas diferentes las cuales cuido con mucho cariño. Uno de los grandes inconvenientes que encuentro es situarlas dependiendo de la estación del año, de la hora del día y de las condiciones meteorológicas para que tengan las mejores condiciones posibles. Siempre ando moviendo los tiestos de un lado a otro. Tomando un café y pensando en cómo resolverlo, pensé en crear un tiesto inteligente con Arduino.

Tengo la costumbre de plantar cualquier semilla que me encuentro. De este modo tengo he conseguido cultivar naranjos, manzanos, olivos, palmeras, jacarandas, etc…, todos en miniaturas como si fueran bonsais. Cuando hablo de inteligencia quiero dejar claro que estoy hablando de que tenga su propia autonomía y que tome decisiones respecto a unos umbrales establecidos. Algo parecido al proyecto Fish on Wheels que vimos en el capítulo 64. Proyectos curiosos con Arduino, pero con plantas.
Este capítulo va a ser el primero de una serie donde explicaré como llevar a cabo este proyecto. Daré todos los pasos a seguir para que tú, seas capaz de crear el mismo proyecto paso a paso. Comenzaré haciendo una descripción del proyecto a grandes rasgos, el material que vamos a utilizar y los posibles problemas que deberemos ir resolviendo. En los siguientes capítulos profundizaré dando todo lo necesario para que lleves a cabo este proyecto conmigo.
Por supuesto que es primordial tu colaboración. Me encantaría que enviaras comentarios y sugerencias para ir mejorando el producto. El fin de este proyecto no es la idea en sí, lo que pretendo es transmitir todos esos conceptos para poder crear un proyecto de principio a fin. El resultado final será un prototipo que podremos ir mejorando entre todos hasta conseguir un producto final e incluso, por qué no, poder comercializarlo como un proyecto Open Source.
Antes de comenzar con tema que voy a tratar hoy, decirte que el 14, 15 y 16 de Octubre, estaré en las XI JPOD (Jornadas de Podcasting) en Málaga. En este evento nacional realizaré un directo junto a Gabriel Viso del podcast Pitando. Si vas a estar por allí, espero verte.
Indice de contenidos
Especificaciones y requerimientos para el tiesto inteligente con Arduino
Lo primero que vamos a ver es qué es lo que tenemos que hacer a grandes rasgos. Son las especificaciones y requerimientos del proyecto. El concepto general es que una planta se mueva libremente en base a unos parámetros medioambientales. Por lo tanto, tenemos dos partes diferenciadas:
- El robot o plataforma donde situar la planta para que se mueva.
- Los sensores que captarán los parámetros medioambientales.
El robot o plataforma debe ser capaz de mover una planta
En el mercado encontramos una enorme variedad de modelos de robots y plataformas móviles para Arduino. Uno de los más conocidos creado por la empresa DFROBOT es el Pirate 4WD Mobile Platform. Se trata de un robot con cuatro motores para sus cuatro ruedas y con una plataforma. Está construido en aluminio resistente y ligero y tiene dos niveles o pisos. El primer nivel estaría destinado a situar toda la electrónica. El segundo nivel tiene agujeros, reservado para sensores y todo aquello que queramos transportar. Es el robot ideal para este proyecto.

El robot, con la planta encima, se moverá libremente buscando las mejores condiciones para la planta. Dependiendo de unos umbrales establecidos sobre parámetros medioambientales, será capaz de situarse en el lugar idóneo. Todo esto se hará a través de un algoritmo que deberemos programar, aunque esto lo veremos más adelante. Uno de los grandes inconvenientes del tiesto inteligente con Arduino son los obstáculos. Como es natural encontrará cosas en su camino y de alguna manera tendrá que evitarlos. Lo lógico sería utilizar un sensor de ultrasonidos aunque hay otras alternativas como el escáner LIDAR o los infrarrojos. Puestos a elegir, lo más sencillo y económico sería las ondas ultrasónicas.
Uno de los factores importantes a la hora de trabajar con motores es el torque. Ya hablé de su significado en el capítulo 73. Motor paso a paso con Arduino. Para este primer prototipo, no nos vamos a centrar en si puede o no puede mover cierta maceta. Al tratarse de un prototipo, el objetivo es que haga lo que nosotros queremos aunque sea con una maceta pequeña. Por lo tanto si tu no tienes este robot en concreto no te preocupes, sigue adelante ya tendrás tiempo de cambiarlo si hace falta.
Parámetros medioambientales a tener en cuenta para el movimiento
Además de librar los obstáculos, debemos tener en cuenta los parámetros medioambientales por los que debe moverse. En principio yo he pensado en los siguientes.
- Temperatura
- Humedad
- Índice de calor: se calcula en base a la temperatura y la humedad relativa e indica cuánto calor hace.
- Condiciones de lluvia
- Luminosidad
- Humedad del suelo
- Viento (aunque esté apuntado aquí se descartará en el primer prototipo por su complejidad)

Estos parámetros nos dirán si la planta está situada en un buen lugar o no. Los umbrales que se establezcan dependerán del tipo de planta, no es lo mismo un cactus que un geranio. Otro parámetro a tener en cuenta es la estación del año en la que estamos y la hora del día. Esto nos permitirá establecer diferentes modos por ejemplo, modo verano y modo invierno. Se puede hacer de dos maneras, manual o automático.
La forma manual es la más sencilla de realizar y lo haríamos con un simple interruptor o botón para indicar en que modo estamos. Para hacerlo de la otra forma, la automática, tenemos dos posibilidades. Por un lado utilizar la librería Time que incluye Arduino o utilizar un RTC (Real Time Clock) reloj en tiempo real. La forma automática es más costosa y de momento, la dejamos apuntada por si nos interesa hacerlo de esta manera.
Requerimientos del software
Aquí entramos en mi terreno y por desgracia me tengo que poner freno. Se me ocurren cientos de ideas para monitorizar su comportamiento y poder interactuar con la planta. Desde históricos pasando por gráficas, hasta publicación de su estado en redes sociales pero, no es el objetivo del prototipo. Complicaría mucho el desarrollo.
En esta primera fase donde se diseñará un prototipo, lo único que voy a hacer es la programación de todos los componentes con el código nativo de Arduino, que no es poco. Necesitaremos también alguna pantalla o LCD para mostrar información y no ir a ciegas, la interfaz de usuario. En el prototipo, los umbrales de decisión estarán integrados en el código como contantes o variables, teniendo que cargar de nuevo todo el sketch si los queremos modificar.
En una segunda fase del proyecto, cuando esté terminado el prototipo del tiesto inteligente con Arduino, podemos hacer una interfaz web que nos de información, hacer un histórico de los datos, cambiar umbrales, etc… Como no, la posibilidad de utilizar una Raspberry Pi como complemento es alta. El gran problema que nos encontraremos será la comunicación a través de la red, pero esto ya lo resolveremos de alguna manera cuando llegue el momento.
Material y componentes necesarios para el tiesto inteligente con Arduino
En base a todo lo expuesto en las especificaciones y requerimientos, estos son los diferentes componentes que vamos a utilizar para el tiesto inteligente con Arduino. Como ya te he dicho, estoy abierto a sugerencias y modificaciones.
Robot o plataforma de movimiento
- DFROBOT Pirate 4WD (4 motores) precio 40€
- Los motores se conectan al shield no ocupan pines
- Motor Shield Adafruit v2.3 precio 30€
- Kit pines hembra Arduino R3 precio 8,25€
- Sensores de ultrasonidos HC-SR04 x 2 precio 8€
- 4 pines digitales
- 5V
- Servomotores x 2 precio 11€
- Se conectan al shield, no ocupa pines
- 5V
Sensores para parámetros medioambietales
- Temperatura, humedad e índice de calor
- DHT11 precio 2,60€
- 1 pin digital
- Alimentación 5V
- DHT11 precio 2,60€
- Sensor de lluvia
- Presión barométrica
- BMP180 de Sparkfun precio 4€
- Comunicación I2C (dos pines)
- Alimentación 3,3V
- BMP180 de Sparkfun precio 4€
- Sensor de gotas de agua
- Módulo MH-RD precio 9€
- 1 pin digital o 1 pin analógico
- Alimentación 5V
- Módulo MH-RD precio 9€
- Sensor de luminosidad
- Módulo fotoresistencia precio 3,55€
- 1 pin analógico
- Alimentación 5V
- Módulo fotoresistencia precio 3,55€
- Sensor de humedad del suelo YL-69 precio 7€
- 1 pin analógico
- 5V
- Presión barométrica
Interfaz con el tiesto inteligente
- Pantalla LCD 16×2 precio 1,98€
- 6 pines digitales
- 5V
- Potenciómetro 10kΩ
Complementos
- Protoboard
- Cables
- Resistencias
- Pulsadores
- Pilas
- Baterías
Elegir la mejor placa para el tiesto inteligente con Arduino
Con las características detalladas de los componentes, podemos tomar la decisión de qué placa utilizar. Voy a hacer un resumen de los pines y el voltaje de operación.
- Pines
- Digitales: 11
- Analógicos: 5
- Voltaje de operación
- 3,3V
- 5V
Dentro de la gama de placas de Arduino, quizás la mejor opción sea la utilizar un Arduino UNO. Queda descartado, de momento, el Arduino MKR1000 debido a que solo dispone de 8 pines digitales y 7 analógicos. Además, esta placa opera solo con 3,7V de salida, insuficiente para alimentar muchos sensores. Esto no quiere decir que en un futuro no podamos utilizar un Arduino MEGA o cualquier otra paca cuyas prestaciones nos sirvan para nuestro proyecto, pero para este prototipo el Arduino UNO es la que mejor se amolda a nuestras necesidades.
Por lo tanto, mi elección es empezar con un Arduino UNO, cuyo coste es de unos 23€.
Coste total del proyecto
Aquí voy a hacer una estimación de lo que nos costaría todo el proyecto. En el caso de que tuviéramos ya algún componente o que podamos sustituirlo por alguno parecido, el coste se reduciría. El total, sumando todos los sensores, motores, robot y placa, sería de unos 150€ sin incluir los complementos. Es un precio razonable y no muy disparatado para hacer esta gran locura. Si tu presupuesto no da, siempre podrás eliminar diferentes sensores y adaptar el proyecto a tus necesidades.
Posibles problemas que deberemos resolver
Una vez ya sabemos todo lo necesario para crear el tiesto inteligente con Arduino, debemos plantearnos los primeros problemas que nos vamos a encontrar. Seguramente surjan muchos más, pero poco a poco los iremos resolviendo. A continuación te los detallo, en este capítulo no los vamos a resolver, en los siguientes iremos viendo diferentes formas para resolverlos.
- Aislamiento eléctrico frente al agua.
- Posicionamiento del tiesto inteligente con Arduino, que guarde las mejores posiciones.
- El peso del tiesto y de la planta es un factor a tener en cuenta, comenzaremos con algo muy ligero.
- El número de pines puede ser determinante. En el caso de requerir más siempre podremos utilizar una placa con más prestaciones, por ejemplo un Arduino MEGA.
- Con el sensor de ultrasonidos resolvemos lo de los obstáculos pero ¿qué pasa si hay uno a nivel del suelo?
- El consumo de energía de los componentes es crucial. Debemos hacer un estudio minucioso para saber que tipo de alimentación utilizar.
Conclusiones
Este será el primero de una serie de capítulos dedicados a este proyecto. Iremos avanzando juntos y resolviendo los problemas que vayan surgiendo. En este blog iré colgando toda la información relativa al proyecto. En el Campus de Programarfacil colgaré los análisis en profundidad de todos los sensores que se traten. Espero que el tiesto inteligente con Arduino te guste, si es así, compártelo y dame tus impresiones, juntos seguro que hacemos un gran proyecto.
Puedes escuchar este programa en, iVoox, iTunes y en Spreaker. Si lo haces, por favor valora y comenta, así podremos llegar a más gente.
Conocer como funciona el mundo es la única manera de poder cambiarlo.