Controlador Difuso
para un Sistema
de Riego Automático
Sistemas Basados en Redes Neuronales
Sánchez Patiño Natalia
Rosas Otero Mario
Profesor: Dr. David Tinoco Varela
Licenciatura en Tecnología
Facultad de Estudios Superiores Cuautitlán
Universidad Nacional Autónoma de México
13 - 12 - 2020
-Proyecto para Sistemas Basados en Redes Neronales: Aplicación a sis-
temas Control Difuso en Jardines Mexicanos-
ii
Resumen
Este proyecto contiene una propuesta de sistema para la implementación de
un controlador difuso como método automático de regulación y control para el
cuidado de una planta ornamental. Este puede ser fácilmente modificado o uti-
lizado para diversos tipos de planta ornamental que mantengan características de
cuidado similares, como referencia, en este trabajo se utilizo una planta endémica
de México, popularmente conocida como Nochebuena, principalmente vista y pro-
ducida para invierno, utilizada como flor de temporada. Para el diseño del sistema
se tomaron en cuenta las magnitudes que influyen directamente en su desarrollo y
preservación, tanto a nivel de producción, como en situaciones donde se usa como
ornamentación. Este sistema es capaz de obtener datos de entrada de los factores
ambientales de la planta, tal como temperatura y humedad, y medir las condiciones
de humedad de la tierra alrededor de la planta, con esto, establecer comunicación
entre un microcontrolador, en este proyecto se utilizo un microcontrolador con gran
accesibilidad, Arduino, en conjunto con el software de Matlab, que facilita la elab-
oración de sistemas difusos para control. La utilidad que brinda el manejo de es-
quemas difusos es amplia, permitiendo la toma de decisión de la salida, o salidas
sobre las que se requiera el control, liberando situaciones de ambigüedad, y brin-
dando exactitud a las respuestas y no acotándolas solo a valores discretos. Todo
el sistema en conjunto para poder llevar a cabo el suministro de agua a la planta
de forma controlada de acuerdo a sus necesidades según lo consultado en la lit-
eratura, preservando así en todo momento su cuidado, y realizando una correcta
gestión de los recursos utilizados. Es posible obtener el código total del proyecto
en: https://github.com/NM-Labs/FuzzyPlant
Índice
1 Introducción 1
1.1 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Solución Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Marco teórico 5
2.1 Lógica Difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Controladores difusos . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Jardines automáticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Nochebuena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Requerimientos Agroecológicos . . . . . . . . . . . . . . . . . . . . 9
3 Elementos Utilizados y Proceso de Construcción 10
3.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Funcionamiento del Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Resultados Obtenidos 16
4.1 Lecturas de los sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2 Conjuntos difusos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3 Desempeño del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.4 Caso Hipotético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 Conlusiones 19
5.1 Posibles extensiones del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 20
iii
iv Índice
5.2 Comentarios Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Appendix A Codigo de Arduino 22
Appendix B Codigo de Matlab 23
Appendix C Evidencia Fotográfica 25
Referencias 30
1
Introducción
El proyecto desarrollado plantea la construcción de un controlador difuso capaz de
medir las condiciones ambientales y de humedad de una planta y su entorno para de-
cidir si necesita ser regada o no y en que cantidad o potencia de la bomba se necesita. El
sistema recibe datos de la humedad y temperatura ambiental y de la humedad del suelo
a través de dos sensores y proporciona una respuesta acorde a esos valores variando la
potencia de una bomba de agua que se encargará de regar diariamente a la planta. La
gestión de potencia que se manda a la bomba es llevada a cabo mediante un esquema
de control difuso implementado en Matlab.
1.1 | Motivación
Es común que al momento de mantener la producción de plantas, o simplemente tener
alguna como ornamentación, no siempre se cuente con el tiempo, la disponibilidad, la
atención, o el conocimiento necesario para preservar dichas plantas encuentren en buen
estado, y esto ocasione que dichos seres vivos sufran afectaciones si no se encuentran
en las condiciones necesarias durante cierto tiempo, llegando incluso en los casos mas
severos a ocasionar la muerte de dichas plantas, este hecho además de la afectación del
ser vivo en cuestión, puede representar una pérdida monetaria, de tiempo y esfuerzo,
o inclusive una perdida sentimental, que dependiendo de la cantidad de plantas que
se vean afectadas, va a resultar el tamaño del daño económico y afectivo generado.
Otro tipo de problemática común, es el exceso de suministro de componentes esenciales
para las plantas, como lo es el agua, este suministro en exceso también se presenta por
causas de desconocimiento, olvido, o falta de disponibilidad de tiempo, y causar daños
al estado óptimo de una planta, y representar pérdidas monetarias; es por eso que en
el presente trabajo, se realiza una propuesta a pequeña escala de un sistema que pueda
1
Chapter 1. Introducción 1.2. Objetivos
mitigar estos este tipo de situaciones. Con este proyecto se busca automatizar ciertas
tareas dentro de los jardines mexicanos, y de otras regiones donde se produce y utilizan
plantas para ornamentación, así como en macetas, u otro tipo de contenedores donde
puedan ubicarse dichas plantas. El sistema de control utilizado, se realiza mediante
esquemas de control de lógica difusa, ya que dichos esquemas le permiten a los sistemas
tener une buena capacidad de adaptación a distintos valores de entrada y variar su
respuesta de salida. Siendo esto favorable para la monitorización continua de un jardín
y su cuidado adecuado y constante, sin necesidad de que un humano este al pendiente
de el. El uso de la lógica difusa para resolver este problema se basa en que deseamos
combinar las variables de entrada, y que sea cual sea el valor que tomen, por medio de
reglas definidas lógicamente pero sin tener conjuntos discretamente definidos, se logra
producir valores de salida que son igualmente variables. Se espera con este sistema dar
una alternativa de control, con una amplia variedad de grados de liberta, el cual facilite,
el cuidado, o la producción de este tipo de plantas para ornamentación, manteniendo
el cuidado en tiempo y forma, y con un factor igual de importante el cuidado de los
recursos, optimizando el gasto de los mismos conforme a las condicione presentadas en
el ambiente.
1.2 | Objetivos
Objetivo general:
Construir un sistema de control difuso para el riego automático de una planta
ornamental, utilizando las herramientas y esquema de diseño vistos en clase, se
requiere que el sistema sea capaz de obtener información del ambiente que afecta
de forma positiva o negativa a las buena condición de vida de la planta, y con esto
tomar acción para contrarrestar una situación con condiciones inadecuadas, por
medio de actuadores que provean a la planta de elementos para darle condiciones
favorecedoras. Obtener dos esquemas con diferente grado de complejidad a nivel
de software, un sistema sencillo otro sistema con posibilidades de actuación. Con-
struir físicamente con los recursos al alcance, uno de los esquemas diseñados a
nivel de software.
Objetivos Particulares:
– Realizar una revisión teórica acerca de los conceptos vistos en clase sobre
control difuso.
2
Chapter 1. Introducción 1.3. Solución Propuesta
– Buscar la aplicabilidad de los esquemas de control difuso como sistemas de
manejo y control de recursos con alto grado de precisión, específicamente
aplicado a control de agua para una planta.
– Comprender de manera teórica y práctica, mediante un lenguaje y herramien-
tas de programación, el funcionamiento del sistema propuesto.
– Complementar y desarrollar habilidades de programación en el lenguaje Mat-
lab, y C++ desde la interfaz de Arduino como herramienta para la creación y
ejecución del sistema.
– Verificar que el sistema cuente con un funcionamiento práctico, así como im-
plementar el sistema con herramientas del fácil acceso.
– Comprobar de manera aplicada, conceptos vistos en clase y conjuntándolo
con conceptos encontrados durante la búsqueda de información relacionada
a temas de la clase.
1.3 | Solución Propuesta
De acuerdo a lo anterior, se han realizado dos propuestas de solución. La primera de
ellas fue realizada tomando en cuenta los materiales de los cuales se disponía, o eran
de fácil acceso al momento de creación de este proyecto, y con los cuales se podía hacer
la construcción del sistema de control, con software y hardware. La segunda propuesta
fue construida únicamente a nivel conceptual, y desarrollando el funcionamiento del
esquema de control difuso en software, esta propuesta contempla la suposición de con-
tar con mas sensores, de diferentes tipos, así como mas diversidad de actuadores, lo que
permite un diseño de sistema de cuidado mas profundo, y mejor capacidad de control,
brindando mejores condiciones de vida a la o las plantas en cuestión.
Para la primera solución se tomaron en cuanta 3 variables de entrada, que cont-
meplan condiciones del medio en el que vive la planta, en este caso, la planta utilizada
es la Euphorbia pulcherrima, conocida comúnmente como flor de Nochebuena, flor
de Navidad, flor de pascua, entre otros. Las masgnitdes físicas tomadas del medio de
la planta son: humedad del suelo (tierra), humedad y temperatura ambiental. Estas
masgnitudes son medidas con sensores conectados a un microcontrolador, en este caso,
un Arduino Uno, dicha información es enviada a Matlab, aquí es donde se diseño y
se cuenta con la herramienta de evaluación del controlador difuso, que fue diseñado
tomando en cuenta los datos encontrados en la literatura, sobre los rango necesarios de
3
Chapter 1. Introducción 1.3. Solución Propuesta
las magnitudes tomadas en cuenta, para que el tipo de planta utilizada en específico
pueda tener condiciones de vida óptimas. La salida del controlador difuso, es medi-
ante el control de voltaje enviado a el actuador, que en este caso es una bomba de agua,
la cual suministrara a la planta diferentes intensidades de flujo de este compone te,
seguían sus condiciones, o estado actual, con propósito de mantener hidratada lo nece-
sario a la planta. La segunda solución propuesta, contempla mas variables tanto de
entrada y de salida, a raíz de la investigación en la literatura acerca de otras condiciones
que favorecen a la conervación de la planta en un estado ideal, pero que representa tam-
bién el eso de otro tipo de sensores y actuadora, que dado la época, y el tiempo con el
que se contó para desarrollar el proyecto, no fue posible construir un sistema con estos
elementos, sin embargo se propone el diseño en software de control difuso, tomando en
cuenta estas consideraciones, este sistema propuesto contempla 4 variables de entrada,
las primeras tres son las mismas que el primer sistema propuesto, adicionalmente con-
siderando la iluminación, po su parte las tres variables de salida son 3, una bomba de
agua, con el mismo fin de la primera propuesta, un clima, con aspersor de agua para
controlar un poco la temperatura y la humedad ambiental, y una lampara para cuidado
de planta, para regular la luminosidad dependiendo de la condición de dicha planta. de
salida, con esto tener un sistema de capaz de regar la planta mantener una temperatura
y humedad del ambiente adecuada y de proporcionarle luz, cuando sea necesario.
4
2
Marco teórico
2.1 | Lógica Difusa
La lógica difusa o en algunos casos también nombrada como lógica borrosa refiere a los
principios formales de razonamiento aproximado, donde os posibles estados adquieren
un mayor grado de precisión, en su análisis, y su determinación. Esto bajo la consid-
eración de la lógica clásica como el proceso de razonamiento preciso. Teniendo esto
en cuenta, es posible afirmar que, las características más atractivas de la lógica difusa
son su flexibilidad, su tolerancia con la imprecisión, su capacidad para modelar proble-
mas no-lineales, y su base en el lenguaje natural, para la descripción da los problemas
planteados.
Dentro del planteamiento de soluciones mediante lógica difusa, es común utilizar
expresiones que no son ni totalmente ciertas ni completamente falsas, es decir, mediante
este tipo de lógica se aplican conceptos que pueden tomar un valor cualquiera de veraci-
dad dentro de un conjunto de valores que oscilan entre dos extremos, dichos extremos
los podemos considerar como la verdad absoluta y la falsedad total, totalmente pren-
dido, o totalmente apagado, uno o cero. Es conveniente hacer énfasis, que el concepto
de difuso, o borroso no es el objeto principal de estudio, si no la falta de definición de
puntos de valor intermedios o bloques únicos, definidos e inamovibles, donde no puede
haber valores intermedio a dichos puntos, y que a su vez dan una salida previamente
definida, que recae sobre un extremo o un punto medio bien definido, pero que puede
llegar a ser ambiguo, y no ajustar bien, a la magnitud que presenta la situación a con-
trolar. La lógica difusa nos permite tratar con información imprecisa, bajo definiciones
como estatura media o temperatura baja, así como manejar de mejor forma los puntos
difíciles de tratar que viven en la intersección de los conjuntos en lo que se secciona una
5
Chapter 2. Marco teórico 2.1. Lógica Difusa
variable de entrada o salida. La información es tratada en términos de conjuntos bor-
rosos que se combinan en reglas para definir acciones: si tenemos un caso, por ejemplo
donde, la temperatura es alta entonces enfriar mucho. Una decisión exacta acorde a este
tipo de casos donde comienzan a intervenir mas variables, puede complicarse aun mas,
la lógica difusa nos ayuda a manejar de mejor manera el aumento de variables y medir
su influencia en la respuesta que produce la variabilidad de dichas variables de entrada.
La lógica difusa permite representar el conocimiento común, que es mayoritaria-
mente del tipo lingüístico cualitativo y no necesariamente cuantitativo, en un lenguaje
matemático a través de la teoría de conjuntos difusos y funciones características asoci-
adas a ellos. Permite trabajar a la vez con datos numéricos y términos lingüísticos; los
términos lingüísticos son inherentemente menos precisos que los datos numéricos pero
en muchas ocasiones aportan una información más útil para el razonamiento humano.
2.1.1 | Controladores difusos
Una de las áreas donde ampliamente los sistemas de control difuso han tenido un alto
impacto, y han demostrado capacidad para ayudar a plantear soluciones, es en el área
de control automático de procesos. El control difuso ha sido aplicado de forma exitosa
en muy diversas ramas tecnológicas, algunas de las industrias donde este tipo de tec-
nologia se ha implementado es en la metalurgia, el diseño de robots para la fabricación,
sistemas de control y asistencia en maniobras de aviones, sensores de imagen y sonido
donde a partir de controladores difusos se han creado sistemas de estabilización, tam-
bien han sido utilizados en electrodomésticos como lavadoras capaces de autorregular
la cantidad de jabón que requiere un lavado dependiendo del grado de suciedad de la
ropa, aire acondicionado en el que el sistema difusos, ayudan a evitar las oscilaciones
entre el exceso y la falta de temperatura, utensilios para cocina como cocineros de arroz
capaces de elaborar diversas variedades de arroz regulando la cantidad de agua y la
temperatura en cada caso para que el grano quede cocido y suelto, en automoción, en
áreas de preservación de la seguridad como los sistemas de frenado ABS que han desar-
rollado diversas marcas, o sistemas de cambio de velocidades automático, incluso se ha
propuesto soluciones utilizando estos conceptos para control automático de velocidad
que controla la intensidad de frenado en situaciones peligrosas entre mcuhas otras apli-
caciones que han surgido hasta hoy en dia bajo estos principios. Estos sistemas entran
dentro del nombrado campo de los llamados sistemas expertos y utilizan información,
esencialmente imprecisa, con el fin de lograr sus cometidos.
6
Chapter 2. Marco teórico 2.2. Jardines automáticos
Figura 2.1: Sistema de control difuso general
2.2 | Jardines automáticos
Mucha de la gente que acostumbra tener plantas, tiene un gusto por la mismas, y es-
tablecen vínculos afectivos hacia ellas, por lo cual dedican parte de su tiempo y esfuerzo
en mantenerlas en buen estado, sin embargo, en ocasiones puede que no se cuente con
el tiempo, o la atención necesaria para atenderlas en tiempo y forma, o se poseen cam-
pos de producción de alguna especie de planta, como la noche buena, hay ocasiones
en que no se puede atender a toda la planta a tiempo, es por eso que la idea de imple-
mentar jardines automáticos, es decir, jardines de auto cuidado a tomado popularidad
tanto en sectores de producción, como en algunos hogares. Anteriormente se han pop-
ularizado los sistemas de riego automático para espacios grandes, o abiertos, o para
espacios grandes y abiertos, pero aun queda emergente un mercado, donde los sistema
de riego automático pueden tener un gran aporte como en jardines pequeños, terrazas
y plantas en el exterior e interior de una casa casa.
7
Chapter 2. Marco teórico 2.3. Nochebuena
Algunas de las ventajas de estos sistemas son:
Ahorro de agua: Un riego bien dimensionado nos permite ahorrar más agua que
un riego manual, sin mojar hojas ni flores de forma excesiva, además contribuye a
disminuir las pérdidas por evaporación ya que el agua cae directamene en la base
de la planta.
Conservar la estructura del suelo y los nutrientes: Que caiga demasiada agua en el
suelo provoca que los nutrientes sean arrasados por el agua, dejando a las plantas
con menos nutrientes disponibles. El regado automático ayuda a preservar los
nutrientes y a reducir la compactación del suelo.
Prevenir enfermedades: Puesto que el agua no moja las hojas ni las flores, hay
menor posibilidad de que aparezcan enfermedades causadas por hongos en la
estructura externa de la planta.
2.3 | Nochebuena
La mayormente conocida como noche buena, nochebuena
que es la especie nombrada como Euphorbia pulcherrima
es originaria de México, conocida en náhuatl como Cuet-
laxóchitl, que significa “flor que se marchita”, aunque tam-
bién se encuentra traducciones como flor de pétalos re-
sistentes como el cuero. Es de gran significado para cul-
turas como la azteca, donde simbolizaba la sangre de los
sacrificios que los indígenas ofrendaban al sol para ren-
ovar sus fuerzas. En México, las poblaciones silvestres
más grandes de esta planta se encuentran en los esta-
dos de Guerrero, Oaxaca, Michoacán y Chiapas, mien-
tras que en su forma cultivada se localiza en todo el
país.
Es una planta que responde al fotoperiodo, ya que requiere de días cortos y noches
largas para inducir la coloración de las brácteas. Se requiere de buena iluminación para
que estas no se decoloren o caigan. Con relación a la temperatura, no soporta el frío ni
el exceso de temperatura, requiere en promedio de 20-22 °C. por el día y 16 °C por la
noche. Aunque puede tolerar los 40 °C no soporta las corrientes de aire y los cambios
bruscos de temperatura. Exige buena humedad ambiental para evitar la caída de las
8
Chapter 2. Marco teórico 2.3. Nochebuena
hojas pero es muy sensible a la humedad del suelo, ya que el exceso de agua puede
pudrir la raíz. Después de la floración, cuando las hojas han caído y pierde sus brácteas,
se poda la planta dejando tallos de entre 5 y 10 cm.
2.3.1 | Requerimientos Agroecológicos
2.3.1.1 | Temperatura
Durante el crecimiento y desarrollo vegetativo, lo ideal son temperaturas diurnas de 20
a 23°C y nocturnas de 20°C; sin embargo, no deben de bajar los 18°C ni rebasar a los
30°C. En floración, las temperaturas de 18°C son ideales para cultivares de hoja verde
medio y 17°C para hoja oscura, aunque los límites de 16 a 30°C, dan buenos resultados.
2.3.1.2 | Iluminación
La intensidad lumínica recomendada para zonas templadas es de 5,500 pies candela
y en zonas calientes 4,500, la cual debe de mantenerse hasta octubre (que se consigue
al usar una cubierta de plástico blanco lechoso al 50 %) para después bajar a 4,000 y
3,000, respectivamente hasta tres semanas antes de la venta. Las dos últimas semanas
es recomendable una intensidad de 2,000 a 2,500 que, en México, casi nadie lo hace.
2.3.1.3 | Humedad relativa
La humedad relativa es de especial importancia: la planta puede sufrir alargamientos
o ataques de hongos (cenicilla o Botrytis) y bacterias (Erwinia). Es por eso que se debe
de mantener la humedad por debajo de 75% y si hay clima lluvioso generar una buena
circulación de aire. También se debe dar un buen espaciamiento entre plantas.
9
3
Elementos Utilizados y Proceso de
Construcción
Para la creación de nuestro proyecto se utilizó un conjunto de componentes tanto de
software como de hardware lo cuales se describen a continuación:
3.1 | Hardware
Sensor DHT11
Sensor de Humedad FC-28
Mosfet IRF520 o Módulo Relevador 2PH63091a
Bomba de agua
Manguera
Recipiente con Agua
Placa de desarrollo Arduino.
Cables de conexión
Resistencias de 1 KΩ
Opcional:
– LDR
– Lampara UV
– Termostato-Aspersor
10
Chapter 3. Elementos Utilizados y Proceso de Construcción 3.2. Software
3.2 | Software
Matlab
IDE de Arduino
3.3 | Funcionamiento del Sistema
Nuestro sistema emplea el material ya descrito para recibir la información del medio
ambiente. El primer sensor a considerar es el (DHT11) el cual es capaz de medir dos
magnitudes físicas, que son la temperatura del ambiente y su humedad. Su capaci-
dad de medición de temperatura oscila desde los 0°C hasta los 50°C, mientras que la
humedad del ambiente la da en porcentaje, de 0% a 100%. El segundo sensor utilizado
es el FC-28, que mide el grado de humedad en el suelo utilizando un rango de 0 a 1023,
donde 1023 es el estado más seco y 0 el más mojado que puede medir dicho sensor.
El código total del sistema es estructurado en dos partes, una en C++, desde el en-
torno de desarrollo de Arduino, y otra parte desde Matlab. El código en C++, nos ayuda
a leer los datos desde los sensores, y escribirlos en el canal de comunicación seria, que
sera consultado por Matlab, asi como a leer en ese mismo canal, la respuesta del proce-
samiento de control difuso escrita por Matlab, y realizar con dicho resultado, el control
de la bomba de agua, para suministrar a la planta. Para poder utilizar el sensor DHT11
se necesita tener la librería DHT.h instalada, la cual nos va a a permitir inicializar un
objeto con el que podremos trabajar cómodamente con este sensor, obtener los datos de
temperatura y humedad ambiental, para posteriormente escribirlos en el canal de co-
municación serial. Para el caso del sensor que nos ayuda a medir humedad del suelo
(FC-28), dado que se conecta a un pin analógico, este se lee mediante la función analo-
gRead(), y la información es publicada en el serial. Posteriormente se utiliza un delay,
para la sincronización de comunicación entre Matlab y el Arduino, y se procede a veri-
ficar la información en el canal serial, para leer la respuesta que Matlab emite, con esto se
realiza la activación o no de la bomba de agua según la respuesta obtenida, utilizando
la función analogWrite(), que debido a que la conexión a la bomba esta en un pin que
puede ser utilizado como salida analógica, y permite realizar modulación por ancho de
pulsos (pwm) con lo que podemos variar la intensidad de funcionamiento de la bomba.
El código de este proceso, puede revisarse en el (Anexo A). El esquema de conexiones
del Arduino, puede esta visualmente descrito en la figura 3.1
11
Chapter 3. Elementos Utilizados y Proceso de Construcción 3.3. Funcionamiento del Sistema
Figura 3.1: Esquema de conexiones.
Por su parte, el script de Matlab se encargara de obtener los datos de los sensores
mediante el canal de comunicación serial, dichos datos serán evaluados mediante el el
esquema previamente configurado y almacenado en el archivo RealFuzzyPlanSom.fis y
emitirá su respuesta al Arduino escribiéndola en el mismo canal de comunicación, cabe
resaltar que dicha salida puede variar entre 0 y 255, que son los grados de intensidad
de activación que se le pueden dar a la bomba mediante la modulación por ancho de
pulsos. Todo esto se hace tomando en cuenta los valor de entrada de los sensores así
como sus rangos y las condiciones óptimas que una Nochebuena debe de tener.
En este script de Matlab, también se construyen gráficas en el tiempo, que mues-
tran visualmente el comportamiento de las variables que influyen en el sistema, como
se puede observar en la figura 3.2, donde se muestra el comportamiento de la tem-
peratura ambiente (verde), la intensidad (magenta), la humedad del suelo (azul), y la
respuesta emitida por el control difuso (rojo). Este código en Matlab puede consultarse
en el (Anexo B).
12
Chapter 3. Elementos Utilizados y Proceso de Construcción 3.3. Funcionamiento del Sistema
Figura 3.2: Medición de los sensores y Activación de bomba.
El esquema de control difuso, fue creado, mediante las herramientas de diseño que
provee Matlab, con el cual se pude realizar mediante una interfaz con diseño gráfico
óptimo para su concepción, en la figura 3.3 se encuentra el esquema general de nuestro
sistema construido. La definición de las variables de entrada y salida se realizo, sigu-
iendo los datos de cuidado, encontrados en la literatura para la planta Nochebuena, en
relación también, al manejo e interpretación de datos con el que trabajan los sensores,
para tener el control necesario sobre la bomba.
13
Chapter 3. Elementos Utilizados y Proceso de Construcción 3.3. Funcionamiento del Sistema
Figura 3.3: Controlador difuso y variables involucradas
Figura 3.4: Lógica del controlador difuso
14
Chapter 3. Elementos Utilizados y Proceso de Construcción 3.3. Funcionamiento del Sistema
En el segundo esquema diseñado donde se manejo la suposición de pode contar
con mas sensores, y mas actuadores, con lo cual se hubiese podido leer la iluminación
ambiental al rededor de la planta, se introducen también mas variables de salida tal
como un sistema para regular la temperatura, con un aspersor de agua, que nos ayude
a regular la humedad ambiental, emitiendo roció sobre hojas y tallo de la planta, ya
que para el caso especifico de la Noche buena, la literatura registra, que una buena
humedad ambiental, ayuda mucho a mantener este tipo de planta en su estado óptimo,
así como una lampara de cuidado de plantas, para proveer el ciclo de iluminación y
obscuridad que la planta requiere, sobre todo en etapa de desarrollo. Este esquema de
control establece mayor numero de reglas lo cual permite un control mas eficiente de
las condiciones generales bajo las que la planta vive, el esquema y la parte del esquema
lógica pueden verse en la figura 3.5.
Figura 3.5: Controlador difuso y variables involucradas en el sistema 2
15
4
Resultados Obtenidos
4.1 | Lecturas de los sensores
Se experimentaron ciertas variaciones e inexactitudes con los sensores,debido a inter-
rupciones de la señal ocasionadas por movimientos en las piezas electrónicas esto en
algunas ocasiones significó únicamente una lectura errónea, para lo cual se ajustaron
dichas conexiones, en algunas otras ocasiones, este tipo de fallos sí logró interrumpir la
ejecución del programa. Algo interesante fue que las lecturas del sensor de humedad del
suelo tuvieran un rango tan poco común y que fueran al revés de lo que uno pensaría,
siendo el valor cero el punto donde detectaba mayor humedad y 1023 la lectura con el
suelo más seco. Esto a la hora de diseñar, analizar y ver el esquema del controlador di-
fuso puede resultar algo confuso en su interpretación visual de funcionamiento, ya que
pareciera que esta haciendo algo contrario a lo que se consideraría el funcionamiento
adecuado, pero al ponerlo en funcionamiento sí se comporta como debería.
Para este proyecto también es importante tener en cuenta la manera en que se hace la
recepción y envió de datos, debido a que las librerías necesarias no están directamente
disponibles en Matlab, se realizó toda la comunicación a través de un programa previ-
amente cargado dentro de la placa de Arduino que envía y lee la información desde el
canal de comunicación serial. Esto dificulta un poco la ejecución con lectura de datos y
envió de información de control de cambio continuo en tiempo real del programa, que
seria mas fácil ejecutar si se pudiese llevar todo el control desde Matlab, ya que con el
esquema de funcionamiento actual,los tiempos de lectura y escritura deben estar bien
coordinados, y no es tan rápida y eficiente la comunicación.
16
Chapter 4. Resultados Obtenidos 4.2. Conjuntos difusos
4.2 | Conjuntos difusos
Los conjuntos difusos están definidos en base a las necesidades ambientales de una
Nochebuena y durante los experimentos realizados se pudo observar una gran vari-
abilidad en las respuestas, aunque debido a que únicamente el sensor de humedad del
suelo se podía variar libremente, solo se pudieron hacer unas cuantas pruebas físicas
significativas, que los parámetros de humedad y temperatura ambiente, no se contó
con forma de regularlos a placer de forma manual, por lo cual son variables que no se
movieron mucho durante la experimentación. La variable de la temperatura por ejem-
plo, solo se pudo modificar dos o tres grados, arriba o abajo, que no era un gran cambio
para el sistema, mientras que la humedad ambiental solo se pudo aumentar en un 10%,
que aunque represento un cambio más visible tampoco fue muy significativo.
Sin embargo, se pudo experimentar más ampliamente con variaciones al sensor de
humedad del suelo, así como modificando los valores dentro de la ventana de reglas
definidas del controlador difuso dentro de Matlab, (figura 3.4), dentro de esta ventana se
pudieron observar los distintos comportamientos, y debido a ello se decidió modificar la
función de pertenencia, que de manera predeterminada se encontraba en ”Centroides”.
Para este sistema lo que se requería era una función que pudiera dar valores de cero para
que la bomba si pudiera estar totalmente apagada en el punto en que las condiciones
de humedad del suelo fueran óptimas, se encontró que la función de pertenencia que
lograba cumplir este requisito era la función ”SOM” o el método del máximo más chico,
donde la salida es el mínimo valor de todos aquellos que generan el valor más alto de
la función de membresía.
4.3 | Desempeño del programa
El programa actúa de manera bastante rápida, también por ello se agregaron algunas
pausas a ambos códigos para que las lecturas se hagan espaciadas a cierto tiempo y la
activación de la bomba tampoco se detenga de manera tan abrupta a la hora de volver
a hacer la lectura de los sensores. esto dado que no puede hacer un mapeo y cambio
continuo al funcionamiento de la bomba por la necesidad de enviar la comunicación
por el canal serial, y no poder ejercer el control directo desde Matlab.
La cantidad de agua arrojada en el tiempo dado puede variar dependiendo de la
bomba utilizada, en nuestro caso la bomba utilizada arroja aproximadamente 20 mL
17
Chapter 4. Resultados Obtenidos 4.4. Caso Hipotético
Figura 4.1: Circuito físico para el regado de la planta.
por segundo a su máxima intensidad y acepta de 3v a 9v como entrada para su fun-
cionamiento, pero existen otras bombas de agua de tamaño similar o más grandes que
tienen una potencia mayor, lo que afectará la cantidad de agua que bombeen.
4.4 | Caso Hipotético
En el caso donde tenemos más variables a tomar en cuenta, podemos jugar con su com-
portamiento también dentro de la ventana de reglas, como se muestra en la figura 3.5.
Aquí la matriz de reglas ya se ha vuelto bastante más complicada que la anterior, tanto
que ya no seria una matriz, si tomamos todas las reglas en su conjunto, mas bien se-
ria un hipercubo, y aumenta el número de combinaciones posibles, en este caso se han
definido 54 reglas, esto debido a que existen 4 variables de entrada con tres conjuntos
cada una de ellas. Las reglas más fáciles de seguir son aquellas que se encuentran en los
extremos, por ejemplo, muy seco, o muy caliente y muy seco con luz, mientras que otras
son un poco más difíciles de decidir, como con poca luz, temperatura fría, ambiente muy
húmedo y suelo seco. En fin, las disponibilidad de sensores y actuadores, fortalecen el
sistema pudiendo generar un control mas general de todas las variables que influyen en
el ambiente de desarrollo de una planta, en general, y en especifico, de la Nochebuena.
Dentro de este sistema los valores que toma la activación de la bomba de agua se
vuelven un poco más variables, Además de que se pueden observar los cambios en las
otras salidas, en general tenemos un sistema con mas combinaciones que dan respues-
tas tomando en cuenta todos los factores de entrada que se incluyeron, con lo que se
demuestra, como el diseño y propuesta de controladores difusos, ayuda mucho cuando
las variables de entrada y salida a tomar en cuenta aumenta, facilitando su manejo, y
pudiendo dar una respuesta mas acorde a las magnitudes medidas a la entrada, y las
necesarias, a la salida.
18
5
Conlusiones
En este proyecto se realizó la implementación de un controlador difuso como método
de control automático para el cuidado de una planta, tomando en cuenta magnitudes
que influyen directamente en su desarrollo y preservación, tanto a nivel de produc-
ción, como en situaciones donde se usa como ornamentación, para este trabajo en
especifico, se tomo como referencia, una planta, endémica de México, y que adquiere
popularidad cada invierno, como símbolo de la temporada. Este sistema es capaz de
obtener datos de entrada de los factores ambientales de la planta, tal como temper-
atura y humedad, y medir las condiciones de humedad de la tierra al rededor dela
planta, con esto, establecer comunicación con un script que realiza la evaluación de
los datos mediante un esquema de control difuso, y emitir una respuesta, que es
posteriormente mandada al microcontrolador para regular el suministro de agua a
la planta. Las indicaciones de control se manejan donde el Arduino y se establece un
canal de comunicación entre el Arduino y el script de evaluación con sistema difuso.
El objetivo principal de este proyecto se cumplió al poder construir mediante soft-
ware y hardware un controlador de riego automático, eficiente, y con materiales de
fácil acceso, lo cual permite tener respuestas en situaciones de ambigüedad, basán-
donos en lo reportado en la literatura acerca del manejo y cuidado, de la planta uti-
lizada como referencia en este trabajo, es decir la Nochebuena. La realización de este
proyecto nos permitió reforzar los conocimientos vistos en clase sobre lógica y con-
trol difuso, y poner en practica dichos conocimientos, para solventar una situación
que podría representar diversas problemáticas en diversas situaciones, tal como el
descuido, la falta de tiempo, olvido, o desconocimiento, en el manejo y cuidado
de las plantas bajo ciertas condiciones. Esto deja en claro, la capacidad de apli-
cación a soluciones prácticas que nos ofrecen este tipo de esquemas, y como mejora el
rendimiento, y regula el uso, o desuso de recursos, optimizando asi el gasto y el fun-
19
Chapter 5. Conlusiones 5.1. Posibles extensiones del proyecto
cionamiento de los mismos. Durante el desarrollo se encontraron algunas limitantes
como la falta de herramientas disponibles para poder ejercer el control y la lectura
mas eficiente, sin necesidad de un canal de comunicación. Debido a esto la utilidad
del sistema queda restringida un poco a mantener el resultado de una lectura unos
cuantos segundos, en lugar de mapear en tiempo real, y con el mínimo retraso las
entradas, a las salidas del sistema. Respecto al objetivo de fortalecimiento de habil-
idades de manejo y construcción de sistemas en Matlab y Arduino, es posible decir
que se cumplió satisfactoriamente , ya que se pudo obtener un diseño y construcción
del sistema funcional, acorde los recursos con lo que se contó al momento de tra-
bajo en este proyecto, de la misma forma en la que se reafirmo la gran funcionalidad
que brinda Matlab para el diseño de este tipo de sistemas. Mediante el diseño del
sistema en caso hipotético de contar con mas herramientas de hardware, se verifico
la viabilidad de implementar este tipo de sistemas cuando los factores a tomar en
cuenta, aumentan, y el manejo se vuelve mas complicado e inexacto. Esto se resume a
que se obtuvo un desarrollo con gran accesibilidad, facilidad de uso y replicabilidad,
además con una construcción técnica sencilla, pero efectiva tomando en cuenta las
condiciones necesarias de cuidado, para una planta ornamental.
5.1 | Posibles extensiones del proyecto
Con la puesta en práctica de este proyecto, se desarrollo una idea, y se encontró un
buen sector de aplicabilidad a los sistemas de control difuso, generando un proyecto
con grandes posibilidades, y variados caminos de incremento en desarrollo de este
proyecto. Algunas de las ideas sobre las que se podría continuar basados en este tra-
bajo, es mejorar el diseño y compactación de circuitos, para que este mas contenido y
pueda ser implementado en una maceta, como las que comúnmente se tienen en casa
con las plantas ornamentales. Otro posible campo de extensión de este tipo de sistemas
vive en la industria de la producción masiva de este tipo de plantas, donde utilizando,
todas las variables necesarias, así como los actuadores para solventar las necesidades
de las plantas, que en este proyecto no se han tomado en cuenta, como el uso de nutri-
entes externos, o protección contra plagas, u hongos, se podría implementar un sistema
basado en control difuso, para el cuidado y control de grandes espacios donde se desar-
rollen estas plantas, ofreciendo también una mejor gestión de los recursos utilizados en
la producción.
20
Chapter 5. Conlusiones 5.2. Comentarios Finales
5.2 | Comentarios Finales
Con la realización de este proyecto, quedamos satisfechos con los resultados obtenidos
dadas las condiciones y herramientas utilizadas, con la experimentación realizada, el
cumplimiento de todos los objetivos y la experiencia de desarrollo adquirido. Logramos
fortalecer nuestras habilidades de desarrollo específicamente en Matlab y Arduino. De-
bido a los sensores utilizados se utilizaron bibliotecas y métodos distintos a los habit-
uales como:
DHT.h
Matlab y comunicación Serial
Interacción Arduino-Matlab
FC-28
21
A
Codigo de Arduino
1 #include <DHT.h>
2
3 #define DHTPIN 4
4 #define DHTTYPE DHT11
5 DHT dht(DHTPIN, DHTTYPE);
6 int incomingByte = 0;
7
8 void setup() {
9 Serial.begin(9600);
10 pinMode(9, OUTPUT);
11 dht.begin();
12 }
13
14 void loop() {
15 int temp = dht.readTemperature();
16 int humi = dht.readHumidity();
17 int suelo = analogRead(A0);
18
19 Serial.print(temp);
20 Serial.print(humi);
21 Serial.print(suelo);
22 Serial.println(' ');
23 delay(1000);
24 if (Serial.available() > 0){
25 incomingByte = Serial.read();
26 analogWrite(9, incomingByte);
27 delay(9000);
28 Serial.println(incomingByte);
29 }
30 }
22
B
Codigo de Matlab
Script de construcción en Matlab
1 s = serial('COM3');
2 time=6;
3 i=1;
4 P = readfis('RealFuzzyPlantSom');
5
6 while(i<time)
7
8 fopen(s)
9 % fprintf(s, 'Datos del serial:')
10
11 out = fscanf(s)
12
13 Temp(i)=str2num(out(1:2));
14 subplot(411);
15 plot(Temp,'g');
16 axis([0,time,20,50]);
17 title('Parametro: DHT11 Temperatura');
18 xlabel('---> tiempo en segundos');
19 ylabel('---> Temperatura');
20 grid
21
22 Humi(i)=str2num(out(3:4));
23 subplot(412);
24 plot(Humi,'m');
25 axis([0,time,25,100]);
26 title('Parametro: DHT11 Humedad');
27 xlabel('---> tiempo en segundos');
28 ylabel('---> % of Humedad ');
29 grid
23
Appendix B. Codigo de Matlab
30
31 Suelo(i)=str2num(out(5:8));
32 subplot(413);
33 plot(Suelo,'b');
34 axis([0,time,0,1300]);
35 title('Parametro: Suelo Humedad');
36 xlabel('---> tiempo en segundos');
37 ylabel('---> Muy Humedo ----- Muy Seco ');
38 grid
39
40 E = evalfis(P,[Humi(i),Temp(i),Suelo(i)])
41 Eplot(i)=E;
42 subplot(414);
43 plot(Eplot,'r');
44 axis([0,time,0,255]);
45 title('Parametero: Activacion Bomba');
46 xlabel('---> tiempo en segundos');
47 ylabel('---> Flujo ');
48 grid
49
50
51
52 fwrite(s, round(E), 'int');
53 % pause(10);
54
55
56 incbyte = fscanf(s)
57
58 ii(i)= str2num(incbyte);
59 pause(1);
60
61 fclose(s)
62 i=i+1;
63 drawnow;
64 end
65 delete(s)
66 clear s
24
C
Evidencia Fotográfica
Figura C.1:
25
Appendix C. Evidencia Fotográfica
Figura C.2:
Figura C.3:
26
Appendix C. Evidencia Fotográfica
Figura C.4:
Figura C.5:
27
Appendix C. Evidencia Fotográfica
Figura C.6:
28
Appendix C. Evidencia Fotográfica
Figura C.7:
Figura C.8:
Figura C.9:
29
Referencias
Brianda Damas. La nochebuena y sus características para su reproducción vegetativa, 2014.
A ESPINOSA F, J MEJÍA M, and MA RODRÍGUEZ E. Manual de produccion de plantas de nochebuena y
ornato, 2013.
Agus Kurniawan. Getting Started with Matlab Simulink and Arduino. PE Press, 2013.
Chuen-Chien Lee. Fuzzy logic in control systems: fuzzy logic controller. i. IEEE Transactions on systems,
man, and cybernetics, 20(2):404–418, 1990.
Users Guide MATLAB. Fuzzy logic toolbox. The Mathworks Inc, Nantick, MA, 1999.
Rosanna Pérez Pueyo. Procesado y optimización de espectros Raman mediante técnicas de lógica difusa: aplicación
a la identificación de materiales pictóricos. Universitat Politècnica de Catalunya, 2005.
J Pineda-Pineda, AM Castillo-González, JA Morales-Cárdenas, MT Colinas-León, LA Valdez-Aguilar, and
E Avitia-García. Efluentes y sustratos en el desarrollo de nochebuena. Revista Chapingo. Serie horticultura,
14(2):131–137, 2008.
A. Shah, B. Jain, B. Agrawal, S. Jain, and S. Shim. Problem solving chatbot for data structures. In 2018 IEEE
8th Annual Computing and Communication Workshop and Conference (CCWC), pages 184–189, 2018. doi:
10.1109/CCWC.2018.8301734.
30