Project

General

Profile

Wiki » History » Version 13

francisco pantoja, 12/29/2023 11:52 PM

1 1 francisco pantoja
h1. Wiki
2 1 francisco pantoja
3 6 francisco pantoja
h2. Bienvenidos a la página de BotaniDrip: Sistema de riego automatizado, remoto e intuitivo para casas inteligentes con enfoque asistencial
4 1 francisco pantoja
5 1 francisco pantoja
h3. Profesor encargado: Diego Alberto Aracena Pizarro
6 1 francisco pantoja
7 1 francisco pantoja
h2. Integrantes:
8 1 francisco pantoja
# Patricio Chang Reyes
9 1 francisco pantoja
# Francisco Pantoja González
10 1 francisco pantoja
# Hernán Vazque Lorca
11 1 francisco pantoja
12 1 francisco pantoja
h1. Problemática
13 1 francisco pantoja
14 1 francisco pantoja
h2. Definición del problema
15 1 francisco pantoja
16 1 francisco pantoja
El regado de plantas requiere en la mayoría de sus tipos un cuidado constante, principalmente en el regado periódico de las mismas y revisión de condiciones básicas ambientales como su temperatura, niveles de pH cantidad de luz, etc.
17 1 francisco pantoja
Cuidar las plantas, en este caso, la acción de regar requiere un esfuerzo físico demandante para cierta parte de la población humana, refiriéndose específicamente a personas de la tercera edad e individuos con capacidad de movilidad reducida. 
18 1 francisco pantoja
Provocando en consecuencia que personas de este grupo decidan en la mayoría de casos dejar de atender sus plantas y produciendo en consecuencia la muerte o mal estado de las plantas. Hay además una situación de impotencia en la cual no es posible por fuerza propia monitorizar y tener cuidado de regar adecuadamente las plantas.
19 1 francisco pantoja
20 1 francisco pantoja
h2. Solución propuesta
21 1 francisco pantoja
22 1 francisco pantoja
23 1 francisco pantoja
Un sistema que permita al usuario regar manual o automáticamente, revisar estados primarios y ambientales de sus plantas de manera *remota* e *intuitiva*. 
24 1 francisco pantoja
El sistema debe ser capaz tener un registro de riegos y determinar cuando corresponda, cuándo y cuánta agua proporcionar a cada planta que tenga a su alcance.
25 1 francisco pantoja
26 8 francisco pantoja
h2. PROPOSITO
27 9 francisco pantoja
28 7 francisco pantoja
El propósito de este proyecto es lograr que personas pertenecientes a la tercera edad y/o problemas de movilidad reducida, no vean impedidas sus formas de mantenerse activos debido a sus capacidades limitadas. El pasatiempo de regar y cuidar plantas tiene un impacto positivo en adultos mayores, algunos de sus beneficios son el prevenir enfermedades mentales y mejorar el estado emocional.
29 1 francisco pantoja
30 2 Hernán Vazque
h2. ALCANCE
31 3 Hernán Vazque
32 2 Hernán Vazque
Este proyecto suple la necesidad de regar plantas sin la necesidad de un esfuerzo físico y proveer información al respecto gracias a un sistema de monitoreo, siempre enfocado de manera asistencial. Si bien puede usarse para otros fines y otro tipo de usuario, el público objetivo de nuestra propuesta es acotado. Además de realizar la operación básica de riego, las herramientas estadísticas que provee el monitoreo del proyecto es, en lugar de detallada, precisa y consisa para que cualquier usuario pueda usar la información de sus riegos de la forma que estime conveniente.
33 1 francisco pantoja
34 1 francisco pantoja
h2. OBJETIVOS
35 3 Hernán Vazque
36 3 Hernán Vazque
h3. GENERAL: 
37 3 Hernán Vazque
38 3 Hernán Vazque
Consolidar un sistema de riego automatizado, remoto e intuitivo para ser implementado en casas inteligentes con enfoque asistencial.
39 3 Hernán Vazque
40 3 Hernán Vazque
h3. ESPECÍFICOS:
41 3 Hernán Vazque
42 3 Hernán Vazque
43 2 Hernán Vazque
-Usar herramientas de Internet de las cosas (IOT) como Raspberry Pi y sensores
44 2 Hernán Vazque
-Establecer comunicación con el sistema mediante una interfaz gráfica de usuario (GUI)
45 2 Hernán Vazque
-Proveer estadísticas sobre el estado de las plantas que son regadas por el sistema
46 2 Hernán Vazque
-Brindar la opción al usuario de regar sus plantas en un momento determinado (Modo Manual)
47 2 Hernán Vazque
-Definir horarios de riego automáticamente para cuando el usuario no se encuentre en su casa (Modo Automático)
48 1 francisco pantoja
49 1 francisco pantoja
h2. SUPOSICIONES
50 3 Hernán Vazque
51 3 Hernán Vazque
52 2 Hernán Vazque
-Todos las herramientas de trabajo y sensores requeridos estarán disponibles para ser usados cuando se necesite dentro del proyecto
53 2 Hernán Vazque
-El grupo cumplirá con los plazos establecidos por su organización interna y el profesor
54 2 Hernán Vazque
-El producto elaborado cumple con todo lo requerido y propuesto en este informe
55 2 Hernán Vazque
-El grupo aprenderá uniformemente y en conjunto los conocimientos básicos para desarrollar e implementar el producto
56 1 francisco pantoja
57 1 francisco pantoja
h2. RESTRICCIONES
58 3 Hernán Vazque
59 2 Hernán Vazque
-Se debe utilizar una Raspberry Pi como elemento principal del producto
60 2 Hernán Vazque
-La comunicación con la Raspberry Pi debe ser mediante una aplicación para dispositivos móviles
61 2 Hernán Vazque
-Los recursos son limitados, en caso de averías se deberá buscar otro tipo de tecnología para suplir el requerimiento
62 2 Hernán Vazque
-No se permiten más de un usuario asociado al producto implementado
63 1 francisco pantoja
64 2 Hernán Vazque
h2. ENTREGABLES
65 3 Hernán Vazque
66 2 Hernán Vazque
Los entregables de este proyecto son
67 2 Hernán Vazque
-Carta Gantt
68 2 Hernán Vazque
-Bitácoras Semanales
69 2 Hernán Vazque
-Planificación de Gestión de Riesgos
70 2 Hernán Vazque
-Planificación del Personal y Recursos
71 1 francisco pantoja
72 2 Hernán Vazque
h2. ORGANIZACION DEL PROYECTO
73 3 Hernán Vazque
74 2 Hernán Vazque
PERSONAL Y ENTIDADES INTERNAS
75 2 Hernán Vazque
Los miembros de este proyecto son: Patricio Chang Reyes, Francisco Pantoja González y Hernán Vazque Lorca
76 2 Hernán Vazque
77 2 Hernán Vazque
h2. ROLES Y RESPONSABILIDADES
78 2 Hernán Vazque
79 2 Hernán Vazque
Todos los miembros del equipo cumplen la función de desarrolladores y programadores. Sin embargo, los roles específicos definidos para el proyecto  son
80 2 Hernán Vazque
81 2 Hernán Vazque
h3. Jefe de Grupo: Encargado de coordinar, liderar y motivar al equipo de trabajo en el cumplimiento de los plazos y tareas establecidas
82 2 Hernán Vazque
83 2 Hernán Vazque
h3. Ejecutivo de Repartos: Planifica, redacta y guía la escritura de bitácoras, informes por fases y contenido de la Wiki
84 2 Hernán Vazque
85 2 Hernán Vazque
h3. Analista y Programador Jefe: Encargado de recomendar e introducir a la capacitación de los demás miembros del equipo en el uso de diversas herramientas de software. Corrige inminentes errores de implementación y programación.  
86 1 francisco pantoja
87 2 Hernán Vazque
h2. MECANISMOS DE COMUNICACIÓN
88 3 Hernán Vazque
89 2 Hernán Vazque
Se ha establecido la herramienta Redmine, donde está la Wiki, Carta Gantt, Bitácoras semanales
90 1 francisco pantoja
Para coordinar reuniones fuera del horario de clases se ha creado un grupo de Whatsapp
91 1 francisco pantoja
Para compartir y editar documentos de los entregables se ha establecido una carpeta de Google Drive
92 2 Hernán Vazque
93 3 Hernán Vazque
h2. RECURSOS UTILIZADOS
94 3 Hernán Vazque
95 2 Hernán Vazque
COSTOS
96 2 Hernán Vazque
HARDWARE: 
97 2 Hernán Vazque
NOMBRE, CANTIDAD, COSTO UNITARIO, COSTO TOTAL
98 2 Hernán Vazque
-Raspberry PI 4 Modelo B, 1, 85.000 CLP, 85.000 CLP
99 2 Hernán Vazque
-Notebook de trabajo, 2, 300.000 CLP, 600.000 CLP
100 2 Hernán Vazque
-Teléfono Inteligente, 1, 250.000 CLP, 250.000 CLP
101 2 Hernán Vazque
-Set Sensor Higrómetro con pines, 1, 1600 CLP, 1600 CLP
102 2 Hernán Vazque
-Mini Bomba de Agua, 1, 2100 CLP, 2100 CLP
103 2 Hernán Vazque
-Módulo de Relay (Relé), 1, 2500 CLP, 2500 CLP
104 2 Hernán Vazque
-Tubo PVC, 2, 1000 CLP, 2000 CLP
105 2 Hernán Vazque
-Macetas, 4, 1800 CLP, 7200 CLP
106 2 Hernán Vazque
-Alfombrilla impermeable, 1, 500 CLP, 500 CLP
107 2 Hernán Vazque
108 4 Hernán Vazque
TOTAL: 950.900 CLP
109 1 francisco pantoja
110 2 Hernán Vazque
h2. SOFTWARE:
111 3 Hernán Vazque
112 3 Hernán Vazque
113 2 Hernán Vazque
-Sistema Operativo Raspbian 
114 2 Hernán Vazque
-Sistema Operativo Android 14
115 2 Hernán Vazque
-Lenguaje de Programación Python 3
116 2 Hernán Vazque
-Entorno de Desarrollo Integrado Visual Studio Code
117 2 Hernán Vazque
-Herramienta de creación Android Studio
118 2 Hernán Vazque
-Plataforma Redmine
119 4 Hernán Vazque
-GRUPO DE Whatsapp
120 1 francisco pantoja
TOTAL: $0
121 1 francisco pantoja
122 2 Hernán Vazque
h2. RECURSOS HUMANOS
123 3 Hernán Vazque
124 3 Hernán Vazque
125 2 Hernán Vazque
Se han asignado los siguientes cargos especiales a cada integrante:
126 2 Hernán Vazque
Jefe de Grupo: Francisco Pantoja
127 2 Hernán Vazque
Ejecutivo de Repartos: Patricio Chang
128 2 Hernán Vazque
Analista y Programador en Jefe: Hernán Vazque
129 2 Hernán Vazque
130 2 Hernán Vazque
Se ha considerado los siguientes costos de trabajo por hora:
131 2 Hernán Vazque
132 2 Hernán Vazque
Jefe de Grupo: 23000 CLP, horas totales: 192, total: 4416000 CLP
133 2 Hernán Vazque
Ejecutivo de Entregables: 25000 CLP, horas totales: 150, 3750000 CLP
134 2 Hernán Vazque
Analista y Programador en Jefe: 18000 CLP, horas totales: 200, 3600000 CLP
135 10 francisco pantoja
136 10 francisco pantoja
h2. REQUERIMIENTOS ESTABLECIDOS
137 10 francisco pantoja
138 10 francisco pantoja
Requerimientos funcionales:
139 10 francisco pantoja
- Efectuar riegos remotamente por accionamiento manual y/o automático
140 10 francisco pantoja
- Recopilar y desplegar estadísticas sobre las condiciones del suelo
141 10 francisco pantoja
- Notificar al usuario cuando se haya efectuado un riego
142 10 francisco pantoja
- Almacenar información de Riegos efectuados
143 10 francisco pantoja
- Visualizar listado de Riegos efectuados
144 10 francisco pantoja
Requerimientos no funcionales:
145 10 francisco pantoja
- Conexión entre usuario y raspberry debe ser por medio de una red Wi-fi
146 10 francisco pantoja
implementando el modelo de paradigma cliente-servidor
147 10 francisco pantoja
- El cliente debe encontrarse en el dispositivo móvil del usuario
148 10 francisco pantoja
- El servidor debe estar alojado en la Raspberry Pi y recibir peticiones del cliente
149 10 francisco pantoja
por medio del protocolo http
150 10 francisco pantoja
151 10 francisco pantoja
152 10 francisco pantoja
h2. MODELO DE DISEÑO
153 10 francisco pantoja
154 10 francisco pantoja
El modelo de proceso cuenta con los siguientes actores:
155 10 francisco pantoja
-Cliente
156 10 francisco pantoja
-Raspberry Pi
157 10 francisco pantoja
-Bomba de agua
158 10 francisco pantoja
-Sensor de humedad
159 10 francisco pantoja
-Sensor de conductividad
160 10 francisco pantoja
161 10 francisco pantoja
162 10 francisco pantoja
h2. DESCRIPCIÓN DE LA ARQUITECTURA
163 10 francisco pantoja
164 10 francisco pantoja
Una vez consolidada la idea, es necesario establecer cómo será el proceso de conexión entre
165 10 francisco pantoja
el usuario final y el modelo de negocio. En este caso se ha optado por una implmentación
166 10 francisco pantoja
usando el paradigma cliente-servidor, donde se encuentran las siguientes tecnologías:
167 10 francisco pantoja
Cliente:
168 10 francisco pantoja
El usuario usará su dispositivo móvil con sistema operativo Android. La aplicación del
169 10 francisco pantoja
sistema está escrita en Kotlin, lenguaje de programación para la creación de aplicaciones
170 10 francisco pantoja
nativas en Android.
171 10 francisco pantoja
Servidor:
172 10 francisco pantoja
El servidor está compuesto principalmente por la Raspberry Pi, sobre ella se ejecuta un
173 10 francisco pantoja
software que funciona como intermediario entre el hardware y el usuario. Se usan las
174 10 francisco pantoja
librerías de Python: Django y RPI.GPIO, para el backend como para la manipulación de
175 10 francisco pantoja
entradas y salidas GPIO respectivamente
176 10 francisco pantoja
Ambos apartados tanto cliente como servidor deben estar conectados a una red Wi-Fi o en
177 12 francisco pantoja
su defecto, una conexión Ethernet. (Ver DISEÑO DE ARQUITECTURA.odp)
178 10 francisco pantoja
179 10 francisco pantoja
h2. DISEÑO DE INTERFACES DE USUARIO
180 10 francisco pantoja
181 10 francisco pantoja
El usuario final contará con 3 vistas sencillas: Vista Principal, Historial de Riego y Ver Estadísticas
182 11 francisco pantoja
183 13 francisco pantoja
h2. PLAN DE INTEGRACIÓN
184 13 francisco pantoja
185 13 francisco pantoja
El objetivo de este producto es lograr que el usuario frecuente la aplicación para
186 13 francisco pantoja
conocer el estado actual del suelo de sus plantas, es por ello que la interfaz debe
187 13 francisco pantoja
ser intuitiva y amigable, sin muchas opciones, sólo con las necesarias. Los sensores
188 13 francisco pantoja
de entrada y salida (relé y sensor de agua) deben estar conectados a la Raspberry,
189 13 francisco pantoja
la cual deberá estar encendida todo el tiempo. Es ideal que tanto la Raspberry como
190 13 francisco pantoja
los circuitos integrados al GPIO estén aisladas y en un lugar seguro por el inminente
191 13 francisco pantoja
peligro de cortocircuito provocado por el agua.
192 13 francisco pantoja
193 13 francisco pantoja
h2. MODULOS IMPLEMENTADOS:
194 13 francisco pantoja
195 13 francisco pantoja
*Aplicación Móvil:* El desarrollo de aplicaciones móviles por parte de Android Studio ha sido más
196 13 francisco pantoja
accesible gracias a la aparición de Jetpack Compose, un framework de enfoque
197 13 francisco pantoja
declarativo que optimiza el desarrollo de vistas complejas.
198 13 francisco pantoja
Una parte fundamental del framework es la clase MainActivity, dentro de la cual
199 13 francisco pantoja
pueden colgarse los demás componentes de la aplicación. Para el caso de múltiples
200 13 francisco pantoja
vistas, se usa el artefacto Navigator Host, el cual permite la navegación por medio
201 13 francisco pantoja
de distintos botones.
202 13 francisco pantoja
203 13 francisco pantoja
*Módulo HTTP para Android:* Recibir información proveniente del servidor es
204 13 francisco pantoja
posible gracias a la codificación de una interfaz API Service, que contiene los
205 13 francisco pantoja
métodos a implementar por parte de un modelo (ViewModel). La API es construida
206 13 francisco pantoja
gracias a un objeto compañero (característico de Kotlin), el cual tiene un atributo
207 13 francisco pantoja
para guardar la ip del servidor.
208 13 francisco pantoja
209 13 francisco pantoja
*API de Envío de Datos:*  Los datos guardados en el servidor son la información de todos los riegos hechos,
210 13 francisco pantoja
guardando su id único, fecha , hora y si ha sido por acción manual o automática. Estos datos son enviados a la aplicación
211 13 francisco pantoja
en formato JSON, el cual es transformado luego por el cliente a información visual relevante.
212 13 francisco pantoja
213 13 francisco pantoja
*Servidor: *El servidor está alojado en la Raspberry Pi, y está encargado de recibir la
214 13 francisco pantoja
información de los sensores conectados directamente al GPIO de la máquina. Se
215 13 francisco pantoja
han usado un total de 4 pines: 5V PWR (5V de potencia, GND (Pin de Tierra), GPIO 21 (Pin de Bomba) y GPIO 26 (Pin de Sensor de humedad).
216 13 francisco pantoja
Para responder y accionar las funciones de regado, el servidor debe crear un hilo
217 13 francisco pantoja
asíncrono, el cual finalizará en cuanto termine el regado. Esto ha sido implementado
218 13 francisco pantoja
de esa forma con el fin de que la respuesta al cliente sea justo luego de dar la
219 13 francisco pantoja
orden. El servidor está encargado de terminar el hilo, deshabilitando la bomba de
220 13 francisco pantoja
agua en cuanto lo estime conveniente. Para obtener el estado actual del agua encapsulado en una respuesta HTTP se ha
221 13 francisco pantoja
creado una función de iguales características a la ya mencionada, pero con el fin de
222 13 francisco pantoja
retornar el estado del agua en el instante que se realice la petición. Esta función es
223 13 francisco pantoja
necesaria para los casos en que el cliente desee saber el estado del suelo.
224 13 francisco pantoja
225 13 francisco pantoja
h2. TRABAJO FUTURO
226 13 francisco pantoja
227 13 francisco pantoja
Queda pendiente implementar los riegos programados por el usuario y mejorar la seguridad de conexión entre el cliente
228 13 francisco pantoja
y el servidor, subiendo el estándar de HTTP a HTTPS.
229 13 francisco pantoja
Como desafío, también está la inquietud de realizar una implementación de la
230 13 francisco pantoja
aplicación en dispositivos con sistema operativo IOS, ya que un porcentaje no
231 13 francisco pantoja
menor de adultos mayores usan estas tecnologías, quedando fuera del producto
232 13 francisco pantoja
final por el momento.
233 13 francisco pantoja
234 11 francisco pantoja
h2. CONCLUSIONES
235 11 francisco pantoja
236 11 francisco pantoja
A través de los procesos referentes al modelo de negocio es
237 11 francisco pantoja
posible contextualizar y traer a la realidad la idea planteada en la fase de
238 11 francisco pantoja
planeación. UML es una herramienta muy poderosa para realizar esta labor
239 11 francisco pantoja
Finalmente, la descripción de la arquitectura del producto es de vital importancia
240 11 francisco pantoja
para la fase de implementación, ya que traza las directrices a seguir para cumplir
241 11 francisco pantoja
a cabalidad con la planeación del grupo.
242 11 francisco pantoja
Botani Drip tiene base sólida tecnológica y lógica para llevarse a cabo.
243 13 francisco pantoja
La aplicación móvil está implementada casi en su totalidad, cumpliendo con las
244 13 francisco pantoja
funcionalidades básicas necesarias para un uso regular. Se logró dar con una
245 13 francisco pantoja
interfaz simple. Por otra parte, el sistema de sensores y hardware fue implementado
246 13 francisco pantoja
con éxito y en su totalidad, siendo flexible a las preferencias del usuario final. Es por
247 13 francisco pantoja
esto último que Botani Drip tiene la capacidad de ser implementado a pequeña
248 13 francisco pantoja
escala (un solo sensor de agua) y de la misma manera a gran escala (múltiples
249 13 francisco pantoja
sensores).
250 13 francisco pantoja
Además de la implementación, la mayoría de lo propuesto en la Carta Gantt ha sido
251 13 francisco pantoja
cumplido con un pequeño desfase de una semana.