1. Introducción
La jardinería y la agricultura modernas dependen cada vez más de la automatización para optimizar el uso de los recursos, especialmente el agua, un recurso escaso en muchas regiones. Un controlador inteligente de riego automatiza el riego según las condiciones en tiempo real del suelo, en lugar de temporizadores fijos, reduciendo el desperdicio, evitando el riego excesivo o insuficiente, y favoreciendo un crecimiento más saludable de las plantas.
Este estudio de caso se centra en el modelado del comportamiento de este tipo de sistema utilizando un diagrama de máquina de estados UML (también llamado diagrama de estado). El diagrama captura el ciclo de vida del sistema, los puntos de decisión y las respuestas a eventos como lecturas de humedad, tiempos de espera y la intervención del usuario.
El diseño utiliza PlantUMLsintaxis, similar a la del ejemplo de la cafetería proporcionado, que modela de forma elegante estados compuestos, condiciones de guardia, acciones y rutas de error/recuperación.
2. Enunciado del problema y requisitos
Un controlador de riego automatizado para un jardín doméstico o invernadero pequeño debe:

- Iniciar en un modo de bajo consumo Standby la mayor parte del tiempo.
- Despertar periódicamente según un programa (disparador de temporizador) para verificar las condiciones.
- Ingresar en un estado de Sensing para leer el nivel de humedad del suelo (mediante un sensor capacitivo o resistivo).
- Si la humedad < 30% (umbral configurable de sequía), iniciar Irrigando abriendo una válvula solenoide o activando una bomba.
- Si la humedad ≥ 30%, regresar a Listo (no se necesita riego).
- Mientras Riego, monitorear continuamente (o periódicamente) la humedad.
- Detener el riego y cerrar la válvula cuando:
- La humedad alcanza 80% (umbral húmedo configurable) → objetivo alcanzado.
- Un Tiempo de espera de seguridad expira (por ejemplo, 30 minutos) → evita inundaciones, estallidos de tuberías o problemas eléctricos si el sensor falla.
- Después de detener el riego, pasar al estado de Apagado estado.
- En Apagado, esperar a que se confirme confirmación manual (pulsación de botón o comando de aplicación) antes de regresar a Listo — esto permite al usuario inspeccionar el sistema o anular si es necesario.
- Manejar los fallos de forma adecuada (por ejemplo, falla del sensor, válvula atascada) pasando a un estado de Error estado con opciones de recuperación.
Comportamientos adicionales deseables (mantenidos simples aquí):
- No hay riego durante ciertas horas (gestionado por horario/temporizador).
- El registro o las notificaciones están fuera del alcance de esta máquina de estados principal.
3. Conceptos clave de la máquina de estados utilizados
- Estados: Ocioso/En espera, Sensado, Riego, Apagado, Error.
- Estado compuesto: Riego incluye lógica de monitoreo interna (aunque se mantiene plana aquí por simplicidad).
- Transiciones:
- Activadas por eventos (temporizador, lectura de humedad, tiempo de espera).
- Protegidas por condiciones [humedad < 30%], [humedad >= 80%].
- Acciones: /abrir_valvula(), /cerrar_valvula(), /notificar_usuario(), etc.
- Pseudestados inicial/final: [*] para inicio/fin.
- Transiciones autónomas y bucles de recuperación.
4. Diagrama de estados en PlantUML
A continuación se muestra el código completo de PlantUML que implementa el comportamiento descrito. Sigue las convenciones del ejemplo de la cafetería (estilo skinparam, estados compuestos cuando es apropiado, condiciones en [], acciones con /).
@startuml
skinparam {
' Estilo general
' Colores
ArrowColor #333333
ArrowFontColor #333333
BackgroundColor #FFFFFF
BorderColor #333333
' Estilo de estado
State {
BorderColor #005073
BackgroundColor #E6F5FF
FontColor #005073
}
}
[*] --> En espera
En espera --> Sensado : activa_temporizador()
Sensado --> Riego : humedad_suelo < 30%
Sensado --> En espera : humedad_suelo >= 30%
Riego --> Apagado : humedad_suelo >= 80% O tiempo_seguridad()
Riego --> Apagado : tiempo_seguridad() // Protección de tiempo de espera de respaldo
Apagado --> En espera : usuario_confirma_reinicio()
En espera --> [*]
@enduml 
Explicación del diagrama
- En espera — Estado predeterminado de bajo consumo/ocioso.
- Sensado — Comprobación rápida activada por temporizador; evita riego innecesario.
- Riego (compuesto) — Fase activa de riego con actividad interna Riego subactividad.
- Finaliza cuando se alcanza la humedad objetivo o se produce un tiempo de espera de seguridad.
- Apagado — Estado de espera posterior a la irrigación que requiere confirmación para reanudar la automatización (función de seguridad).
- Error — Estado de contención de fallos con transición de recuperación manual.
5. Razonamiento y beneficios del diseño
- Conservación de agua — Solo riega cuando realmente es necesario (basado en humedad del suelo en lugar de tiempo).
- Prevención de inundaciones — Dos condiciones de salida desde el estado de Riego (objetivo de humedad + tiempo límite).
- Seguridad y control del usuario — Confirmación manual tras una parada anormal evita el reinicio automático tras posibles problemas.
- Extensibilidad — Fácil de agregar estados (por ejemplo, Lluvia detectada, Batería baja, Modo invierno) o ajustar umbrales.
- Baja complejidad — Plano cuando sea posible, compuesto solo cuando el agrupamiento lógico aporta claridad (Riego).
Este diseño equilibra robustez, seguridad y sencillez — adecuado para implementación en microcontroladores embebidos (Arduino, ESP32, etc.).
6. Conclusión
Máquina de estadosLas máquinas de estados proporcionan un formalismo excelente para modelar sistemas de control reactivos como los controladores de riego inteligentes. Al definir claramente estados, eventos, condiciones y acciones, los ingenieros pueden razonar sobre el comportamiento del sistema, casos límite y la recuperación de errores antes de escribir código.
La representación de PlantUML anterior sirve como documentación y como plano para la implementación. Su renderizado (mediante herramientas de PlantUML o servidores en línea) produce un diagrama limpio y profesional listo para revisiones de requisitos, generación de código o enseñanza de conceptos de UML.
Las extensiones futuras podrían incluir:
- Integración con API de clima (omitir Sensado si se prevé lluvia).
- Múltiples zonas con umbrales de humedad por zona.
- Notificaciones de aplicación móvil en caso de tiempo límite o error.
Este estudio de caso demuestra cómo un problema de automatización aparentemente simple se beneficia enormemente de un modelado estructurado basado en estados.
- Guía completa paso a paso sobre la máquina de estados de la impresora 3D: Esta guía aplica conceptos de máquina de estados a sistemas de impresión 3D, detallando su lógica operativa y rutas de automatización.
- Herramienta interactiva para diagramas de máquinas de estados: Una herramienta especializada basada en web para crear y editar diagramas de máquinas de estados que aprovecha capacidades de GenAI para el modelado de comportamiento en tiempo real.
- Comprendiendo los diagramas de máquinas de estados en UML: Este tutorial proporciona una visión general completa sobre el modelado del comportamiento del sistema utilizando diagramas de máquinas de estados en UML.
- Guía definitiva sobre diagramas de máquinas de estados UML con IA: Este recurso ofrece una mirada detallada sobre el uso de herramientas impulsadas por IA para modelar con precisión el comportamiento de objetos mediante diagramas de máquinas de estados UML.
- ¿Cómo dibujar un diagrama de máquina de estados en UML?: Este tutorial proporciona instrucciones detalladas para crear diagramas y nombrar transiciones para modelar historial y eventos de entidad.
- Dominando los diagramas de estado con Visual Paradigm AI: Una guía para sistemas de peaje automatizados: Esta guía proporciona una guía paso a paso sobre el uso de diagramas de estado mejorados por IA para modelar y automatizar la lógica compleja requerida para el software de sistemas de peaje.
- Tutorial de diagramas de máquinas de estados: Este tutorial explica los símbolos y sintaxis necesarios para modelar el comportamiento dinámico de objetos de clases individuales, casos de uso y sistemas completos.
- Visual Paradigm AI Suite: Una guía completa sobre herramientas de modelado inteligentes: Esta visión general detalla cómo el plataforma permiteel chatbot de IA apoya la modelización técnica, incluyendo máquinas de estado y otros diagramas de comportamiento.
- Visual Paradigm – Herramienta para diagramas de máquina de estado UML: Una visión general de una herramienta en línea con muchas funciones diseñada para arquitectos paracrear, editar y exportar modelos precisos de máquinas de estado utilizando una interfaz basada en la nube.
- Tutorial rápido de diagramas de estado: Domina las máquinas de estado UML en minutos: Una guía amigable para principiantes para crear y comprender diagramas de estado, centrada enconceptos fundamentales y técnicas prácticas de modelado.











