Está en la página 1de 4

COMO FUNCIONA EL CODIGO

1. Selección de valores de ejemplo en la interfaz: Aquí se obtienen los valores de


temperatura, intensidad de riego y humedad desde algún tipo de interfaz de usuario (app) y se
almacenan en variables (temperatura, intensidad_riego, humedad).

2. Factores de ajuste: Se definen factores de ajuste para la temperatura, humedad e intensidad


de riego. Estos factores se usarán más adelante en los cálculos.

3. Generación del horario de riego: Se crea una estructura (horario_riego) para almacenar
los horarios de riego de cada día de la semana.

4. Definición de los horarios de riego para cada día de la semana: Se asignan horarios de
riego específicos para cada día de la semana, utilizando los valores de temperatura, humedad e
intensidad de riego junto con los factores de ajuste definidos anteriormente.

5. Asignación de los horarios de riego a la interfaz de usuario: Los horarios de riego


calculados se asignan a campos específicos en la interfaz de usuario. Esto se hace para cada día
de la semana.

6. Selección de horarios de riego según el cultivo: Se realiza una selección condicional del
horario de riego según el cultivo seleccionado en una lista desplegable
(NOMBREDELCULTIVODropDown.Value). Dependiendo del cultivo seleccionado, se asignan
horarios de riego específicos para ese cultivo.

• Para el caso del "Tomate", se asignan los mismos horarios de riego que los calculados
originalmente.

• Para el caso de "Lechuga" y "Fresa", se asignan horarios de riego diferentes,


presumiblemente calculados previamente y almacenados en la estructura
horario_riego. Estos horarios de riego específicos para "Lechuga" y "Fresa"
probablemente sean diferentes debido a las necesidades de riego únicas de cada cultivo.

7. Caso por defecto: En caso de que no se seleccione ningún cultivo válido, se puede
implementar un manejo de error o asignar valores predeterminados. Sin embargo, en el código
proporcionado, esta sección está vacía.

En resumen, el código recopila información sobre la temperatura, humedad e intensidad de riego,


calcula horarios de riego en base a esos datos y los ajusta según el cultivo seleccionado en la interfaz
de usuario.

CODIGO:

% Valores de ejemplo seleccionados en la interfaz

% Temperatura en grados Celsius


temperatura = app.TEMPERATURA.Value;
intensidad_riego = app.RIEGOINTENSIDAD.Value;
humedad = app.RIEGOINTENSIDAD_2.Value;

% Factores de ajuste para los cálculos matemáticos


factor_temperatura = 0.2; % Factor de ajuste de la temperatura
factor_humedad = 0.1; % Factor de ajuste de la humedad
factor_intensidad_riego = 0.3; % Factor de ajuste de la intensidad de riego

% Generar horario de riego


horario_riego = struct;
% Lunes
horario_riego.LUNES1 = datestr(datenum("08:15") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.LUNES2 = datestr(datenum("12:30") + (humedad * factor_humedad), 'HH:MM');
horario_riego.LUNES3 = datestr(datenum("16:00") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Martes
horario_riego.MARTES1 = datestr(datenum("08:00") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.MARTES2 = datestr(datenum("12:15") + (humedad * factor_humedad), 'HH:MM');
horario_riego.MARTES3 = datestr(datenum("16:00") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Miércoles
horario_riego.MIER1 = datestr(datenum("09:30") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.MIER2 = datestr(datenum("12:40") + (humedad * factor_humedad), 'HH:MM');
horario_riego.MIER3 = datestr(datenum("16:20") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Jueves
horario_riego.JUEVES1 = datestr(datenum("08:30") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.JUEVES2 = datestr(datenum("12:40") + (humedad * factor_humedad), 'HH:MM');
horario_riego.JUEVES3 = datestr(datenum("15:30") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Viernes
horario_riego.VIERNES1 = datestr(datenum("08:00") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.VIERNES2 = datestr(datenum("12:15") + (humedad * factor_humedad), 'HH:MM');
horario_riego.VIERNES3 = datestr(datenum("16:40") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Sábado
horario_riego.SAB1 = datestr(datenum("05:00") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.SAB2 = datestr(datenum("12:00") + (humedad * factor_humedad), 'HH:MM');
horario_riego.SAB3 = datestr(datenum("16:30") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Domingo
horario_riego.DOM1 = datestr(datenum("07:15") + (temperatura * factor_temperatura), 'HH:MM');
horario_riego.DOM2 = datestr(datenum("12:30") + (humedad * factor_humedad), 'HH:MM');
horario_riego.DOM3 = datestr(datenum("18:00") + (intensidad_riego * factor_intensidad_riego), 'HH:MM');

% Asignar los horarios de riego a los campos correspondientes


app.LUNES1.Value = horario_riego.LUNES1;
app.LUNES2.Value = horario_riego.LUNES2;
app.LUNES3.Value = horario_riego.LUNES3;
% Asignar para los demás días de la semana
app.MARTES1.Value = horario_riego.MARTES1;
app.MARTES2.Value = horario_riego.MARTES2;
app.MARTES3.Value = horario_riego.MARTES3;
app.MIER1.Value = horario_riego.MIER1;
app.MIER2.Value = horario_riego.MIER2;
app.MIER3.Value = horario_riego.MIER3;
app.JUEVES1.Value = horario_riego.JUEVES1;
app.JUEVES2.Value = horario_riego.JUEVES2;
app.JUEVES3.Value = horario_riego.JUEVES3;
app.VIERNES1.Value = horario_riego.VIERNES1;
app.VIERNES2.Value = horario_riego.VIERNES2;
app.VIERNES3.Value = horario_riego.VIERNES3;
app.SAB1.Value = horario_riego.SAB1;
app.SAB2.Value = horario_riego.SAB2;
app.SAB3.Value = horario_riego.SAB3;
app.DOM1.Value = horario_riego.DOM1;
app.DOM2.Value = horario_riego.DOM2;
app.DOM3.Value = horario_riego.DOM3;
% Caso de selección de cultivo
switch app.NOMBREDELCULTIVODropDown.Value
case 'Tomate'
% Asignar los horarios de riego para el tomate (Semana 1)
app.LUNES1.Value = horario_riego.LUNES1;
app.LUNES2.Value = horario_riego.LUNES2;
app.LUNES3.Value = horario_riego.LUNES3;
% Asignar para los demás días de la semana
app.MARTES1.Value = horario_riego.MARTES1;
app.MARTES2.Value = horario_riego.MARTES2;
app.MARTES3.Value = horario_riego.MARTES3;
app.MIER1.Value = horario_riego.MIER1;
app.MIER2.Value = horario_riego.MIER2;
app.MIER3.Value = horario_riego.MIER3;
app.JUEVES1.Value = horario_riego.JUEVES1;
app.JUEVES2.Value = horario_riego.JUEVES2;
app.JUEVES3.Value = horario_riego.JUEVES3;
app.VIERNES1.Value = horario_riego.VIERNES1;
app.VIERNES2.Value = horario_riego.VIERNES2;
app.VIERNES3.Value = horario_riego.VIERNES3;
app.SAB1.Value = horario_riego.SAB1;
app.SAB2.Value = horario_riego.SAB2;
app.SAB3.Value = horario_riego.SAB3;
app.DOM1.Value = horario_riego.DOM1;
app.DOM2.Value = horario_riego.DOM2;
app.DOM3.Value = horario_riego.DOM3;
case 'Lechuga'
% Asignar los horarios de riego para la lechuga (Semana 2)
app.LUNES1.Value = horario_riego.LUNES1_LECHUGA;
app.LUNES2.Value = horario_riego.LUNES2_LECHUGA;
app.LUNES3.Value = horario_riego.LUNES3_LECHUGA;
% Asignar para los demás días de la semana
app.MARTES1.Value = horario_riego.MARTES1_LECHUGA;
app.MARTES2.Value = horario_riego.MARTES2_LECHUGA;
app.MARTES3.Value = horario_riego.MARTES3_LECHUGA;
app.MIER1.Value = horario_riego.MIER1_LECHUGA;
app.MIER2.Value = horario_riego.MIER2_LECHUGA;
app.MIER3.Value = horario_riego.MIER3_LECHUGA;
app.JUEVES1.Value = horario_riego.JUEVES1_LECHUGA;
app.JUEVES2.Value = horario_riego.JUEVES2_LECHUGA;
app.JUEVES3.Value = horario_riego.JUEVES3_LECHUGA;
app.VIERNES1.Value = horario_riego.VIERNES1_LECHUGA;
app.VIERNES2.Value = horario_riego.VIERNES2_LECHUGA;
app.VIERNES3.Value = horario_riego.VIERNES3_LECHUGA;
app.SAB1.Value = horario_riego.SAB1_LECHUGA;
app.SAB2.Value = horario_riego.SAB2_LECHUGA;
app.SAB3.Value = horario_riego.SAB3_LECHUGA;
app.DOM1.Value = horario_riego.DOM1_LECHUGA;
app.DOM2.Value = horario_riego.DOM2_LECHUGA;
app.DOM3.Value = horario_riego.DOM3_LECHUGA;
case 'Fresa'
% Asignar los horarios de riego para la fresa (Semana 3)
app.LUNES1.Value = horario_riego.LUNES1_FRESA;
app.LUNES2.Value = horario_riego.LUNES2_FRESA;
app.LUNES3.Value = horario_riego.LUNES3_FRESA;
% Asignar para los demás días de la semana
app.MARTES1.Value = horario_riego.MARTES1_FRESA;
app.MARTES2.Value = horario_riego.MARTES2_FRESA;
app.MARTES3.Value = horario_riego.MARTES3_FRESA;
app.MIER1.Value = horario_riego.MIER1_FRESA;
app.MIER2.Value = horario_riego.MIER2_FRESA;
app.MIER3.Value = horario_riego.MIER3_FRESA;
app.JUEVES1.Value = horario_riego.JUEVES1_FRESA;
app.JUEVES2.Value = horario_riego.JUEVES2_FRESA;
app.JUEVES3.Value = horario_riego.JUEVES3_FRESA;
app.VIERNES1.Value = horario_riego.VIERNES1_FRESA;
app.VIERNES2.Value = horario_riego.VIERNES2_FRESA;
app.VIERNES3.Value = horario_riego.VIERNES3_FRESA;
app.SAB1.Value = horario_riego.SAB1_FRESA;
app.SAB2.Value = horario_riego.SAB2_FRESA;
app.SAB3.Value = horario_riego.SAB3_FRESA;
app.DOM1.Value = horario_riego.DOM1_FRESA;
app.DOM2.Value = horario_riego.DOM2_FRESA;
app.DOM3.Value = horario_riego.DOM3_FRESA;
otherwise
% En caso de que no se seleccione ningún cultivo válido,
% se pueden asignar valores predeterminados o mostrar un mensaje de error.
end
EXPLICACION PARTE POR PARTE

1. Selección de valores de ejemplo en la interfaz:

temperatura = app.TEMPERATURA.Value; intensidad_riego = app.RIEGOINTENSIDAD.Value; humedad


= app.RIEGOINTENSIDAD_2.Value;

• Aquí se están obteniendo valores de temperatura, intensidad de riego y humedad desde


la interfaz de usuario (app). Estos valores son importantes para calcular los horarios de
riego.

2. Factores de ajuste:

factor_temperatura = 0.2; factor_humedad = 0.1; factor_intensidad_riego = 0.3;

• Se definen factores de ajuste para la temperatura, humedad e intensidad de riego. Estos


factores se usarán para calcular los horarios de riego de manera adecuada.

3. Generación del horario de riego:

horario_riego = struct;

• Se crea una estructura vacía llamada horario_riego. Esta estructura se usará para
almacenar los horarios de riego calculados para cada día de la semana.

4. Definición de los horarios de riego para cada día de la semana:

horario_riego.LUNES1 = datestr(datenum("08:15") + (temperatura * factor_temperatura), 'HH:MM');


horario_riego.LUNES2 = datestr(datenum("12:30") + (humedad * factor_humedad), 'HH:MM');
horario_riego.LUNES3 = datestr(datenum("16:00") + (intensidad_riego * factor_intensidad_riego),
'HH:MM');

• Aquí se calculan y asignan los horarios de riego para cada día de la semana. Se utilizan
valores predefinidos para cada día y se ajustan según los factores de ajuste y los valores
de temperatura, humedad e intensidad de riego.

5. Asignación de los horarios de riego a la interfaz de usuario:

app.LUNES1.Value = horario_riego.LUNES1; app.LUNES2.Value = horario_riego.LUNES2;


app.LUNES3.Value = horario_riego.LUNES3;

• Después de calcular los horarios de riego para cada día, se asignan a los campos
correspondientes en la interfaz de usuario (app). Esto asegura que los horarios de riego
calculados se muestren en la interfaz para que el usuario los vea.

6. Selección de horarios de riego según el cultivo:

switch app.NOMBREDELCULTIVODropDown.Value case 'Tomate' % Asignar los horarios de riego para el


tomate (Semana 1) % (Los mismos que los calculados originalmente) case 'Lechuga' % Asignar los
horarios de riego para la lechuga (Semana 2) % (Presumiblemente diferentes a los calculados
originalmente) case 'Fresa' % Asignar los horarios de riego para la fresa (Semana 3) %
(Presumiblemente diferentes a los calculados originalmente) otherwise % Manejo de error o asignación
de valores predeterminados end

• Esta sección utiliza una estructura de control switch para seleccionar los horarios de
riego según el cultivo seleccionado en la interfaz. Dependiendo del cultivo seleccionado,
se asignarán diferentes horarios de riego.

También podría gustarte