Programación en Robótica y desarrollo IOT
(Proyecto Timbres Automatizados V.1)
Descripción de IOT (Internet de las cosas)
El Internet de las Cosas (IoT por sus siglas en inglés, Internet of Things) es un concepto que se refiere a la interconexión de dispositivos físicos a través de internet, permitiéndoles recopilar y compartir datos entre sí sin necesidad de la intervención humana directa.
La idea central detrás del IoT es crear un ecosistema donde los objetos cotidianos estén equipados con sensores, actuadores y conectividad a internet, lo que les permite recopilar datos, comunicarse entre sí y tomar decisiones basadas en esa información. Esta capacidad de comunicación entre dispositivos y sistemas crea una red de objetos inteligentes que pueden mejorar la eficiencia, la comodidad y la seguridad en diversos contextos.
Objetivos
Proporcionar una comprensión básica del concepto de IoT, incluyendo qué es, cómo funciona y por qué es relevante en la actualidad.
Aprender algunas tecnologías y plataformas utilizadas en el IoT, como sensores, dispositivos conectados, redes inalámbricas, protocolos de comunicación y plataformas de desarrollo.
Permitir a los estudiantes adquirir habilidades en el diseño, desarrollo y despliegue de aplicaciones IoT. Configuración de dispositivos, programación de sensores, integración con servicios en la nube y visualización de datos.
Fomentar la colaboración entre los participantes, brindando oportunidades para trabajar en equipo en proyectos prácticos y compartir conocimientos y experiencias. También puede incluir la creación de redes con expertos en IoT y la comunidad local.
Aprender a trabajar en un entorno de desarrollo avanzado utilizando lenguajes de programación actuales preparando a los estudiantes para futuras carreras de ingeniería en sistemas o a fines.
Beneficios para los Estudiantes.
Experiencia Práctica: Los estudiantes tienen la oportunidad de trabajar directamente con tecnologías de IoT y adquirir habilidades prácticas en configuración de dispositivos, programación y desarrollo de proyectos.
Desarrollo de Habilidades: Mejoran sus habilidades en áreas como programación, electrónica, trabajo en equipo, resolución de problemas y pensamiento crítico, importantes en el mundo profesional.
Aplicación del Conocimiento: Aplican los conocimientos teóricos adquiridos en el aula a situaciones prácticas y proyectos reales, lo que les ayuda a comprender mejor los conceptos y principios subyacentes.
Fomento de la Creatividad: Tienen la oportunidad de explorar ideas y soluciones innovadoras en el diseño y desarrollo de proyectos de IoT, fomentando su creatividad y pensamiento computacional.
Preparación para el futuro laboral: Adquieren habilidades y experiencia en una tecnología emergente y de alta demanda en el mercado.
Descripción del Taller
El taller de programación en robótica y desarrollo IOT está orientado a los alumnos que concluyeron el seminario de Desarrollo de Software brindado en 2do de Bachillerato o que poseen los conceptos básicos de programación y ciclo de vida de un proyecto de Software.
Sera brindado en un laboratorio de sistemas, un entorno físico seguro, equipado con hardware y software especializados destinados a la experimentación, desarrollo, pruebas y análisis de sistemas informáticos y tecnológicos.
Dicho laboratorio contendrá material teórico, dispositivos eléctricos, equipos y un entorno de desarrollo adecuado que permitirá a los alumnos adquirir y aplicar conocimientos en programación y electrónica.
Primera Etapa (Problema) 6hs
La primera etapa del taller consta en un repaso de los conceptos brindados en el seminario de desarrollo de software sobre ciclo de vida y análisis de requerimientos.
En esta etapa se planteará a los alumnos un problema a resolver siendo en este caso que los timbres para entrada y salida de alumnos no sean activados por el personal manualmente o bien tengan la capacidad de activarse automáticamente sin cambiar la infraestructura actual.
Los alumnos deberán cumplir con un procedimiento básico de relevamiento y análisis de requerimientos. Para lograrlo deberán primero pensar en que preguntas realizar al personal de la institución (Adscriptos, Dirección, Mantenimiento) para obtener la mayor cantidad de datos posibles y así determinar los requerimientos necesarios para solucionar el problema.
Estás reuniones serán pactadas previamente con el personal y el tiempo no podrá exceder los 40 minutos.
Al finalizar la etapa se entregará un documento de Análisis de Requerimientos que funcionara como base para el comienzo del proyecto.
Segunda Etapa (Tecnologías) 16hs
Para desarrollar el proyecto se brindara a los estudiantes una introducción a las tecnologías y lenguajes sugeridos para realizar el proyecto.
Entorno de Desarrollo (JetBrains PHP Storm)
Se instruye a los alumnos en el uso del entorno de desarrollo PHP Storm, que será previamente configurado por el docente o encargado de sistemas y utilizado por los alumnos como herramienta para programar.
Lenguajes (Html, PHP, MQTT, SQL)
Durante esta etapa se brinda una introducción teórica y el material necesario para codificar cada uno de los lenguajes en orden de dificultad y necesidad para el desarrollo del proyecto.
- HTML especialmente útil para el frontend y la generación de formularios.
- PHP necesario para la lógica o núcleo del sistema conectado al frontend.
- MQTT protocolo de mensajería para comunicación entre dispositivos conectados a IOT.
- SQL como base de datos para el almacenamiento de los datos del programa.
A medida que se realiza la introducción teórica a cada uno de los lenguajes los alumnos deberán realizar ejercicios prácticos que están vinculados directamente con el problema a resolver y así acortar el tiempo de codificación a futuro.
Dispositivos IOT (Shelly)
Para este proyecto se utilizarán dispositivos Shelly.
Shelly es una marca de dispositivos IoT (Internet de las Cosas) que ofrece una variedad de productos diseñados para la automatización del hogar y la monitorización remota.
Los dispositivos Shelly suelen destacar por su fácil instalación, su interoperabilidad con otros sistemas y su amplia gama de funciones.
Se brindará una introducción a estos dispositivos a los alumnos y como realizar la comunicación mediante el protocolo MQTT y realizar conexiones eléctricas sencillas.
Tercera Etapa (Codificación y Test) 40hs
Para la etapa de codificación los alumnos deberán utilizar notebooks propias o de la institución, dichos equipos deberán ser configurados con el entorno de desarrollo necesario para realizar la codificación.
El entorno de desarrollo abarca tanto al IDE de desarrollo “Jetbrains PHP Storm” como el software necesario para compilar y ejecutar aplicaciones web (Apache, PHP, SqlLite).
A su vez los alumnos deberán crear una cuenta en gitHub donde trabajarán en conjunto compartiendo el código y actualizando el repositorio de su proyecto.
Debido al escaso tiempo para un proyecto de esta envergadura, al conocimiento previo de los alumnos y edad, en el proceso de codificación se utilizará una metodología cercana al modelo de XP (Extreme Programming).
XP se basa en una serie de prácticas y organización que fomentan la colaboración, la comunicación, la simplicidad y la retroalimentación rápida.
Algunos de los principios y prácticas clave de Extreme Programming que usaremos son los siguientes:
Programación en parejas: Dos programadores trabajan juntos en el mismo equipo, colaborando en el diseño, la implementación y la revisión del código.
Entregas frecuentes: Se realizan entregas de software pequeño pero funcional y completo en intervalos cortos, preferiblemente 2 a 4 semanas, permitiendo una retroalimentación rápida.
Integración continua: Los cambios en el código se integran regularmente en un repositorio compartido gitLab y se construye automáticamente y se prueba el sistema para detectar errores rápidamente.
Simplicidad: Se valora la simplicidad en el diseño y la implementación del software, evitando la sobrecarga y la complejidad innecesaria.
Cliente presente: colaboración cercana con el docente quien funcionará como cliente, quien proporciona retroalimentación continúa y ayuda a priorizar las características más importantes.
Dentro de esta etapa es altamente probable que los alumnos se encuentren con nuevas dificultades que resolver, problemas de codificación, desconocimiento sobre el cómo realizar un algoritmo o una función en concreto.
Para resolver estas dificultades los alumnos deberán apoyarse tanto en el material teórico suministrado por el docente como en la documentación de cada una de las tecnologías.
A su vez podrán participar en diversas comunidades web relacionadas con tecnología Ej. (https://stackoverflow.com) (https://stackexchange.com/) (https://github.com/) donde hay expertos que están dispuestos a ayudar o a intercambiar información, favoreciendo así su compresión sobre el trabajo colaborativo.
A medida que la codificación del software va avanzando los alumnos deberán realizar las conexiones eléctricas necesarias con el dispositivo Shelly y el timbre físicamente, donde podrán contar con la ayuda e instrucción del personal de mantenimiento quien posee conocimiento sobre la red eléctrica de la institución.
Cabe destacar que ningún alumno podrá realizar las conexiones eléctricas de alta tensión por sí mismos, estas únicamente serán realizadas por personal capacitado.
Al quedar realizadas las conexiones eléctricas los alumnos procederán a probar su software con el dispositivo IOT en un entorno reducido o de baja tensión.
Cuarta Etapa (Test Final y Demostración) 6hs
En la cuarta etapa los estudiantes finalizan los ajustes de su proyecto.
En caso de haberse resuelto el problema o concretado el proyecto, los alumnos deberán realizar una presentación explicando su funcionamiento y realizando una demostración práctica a los alumnos y miembros interesados de la institución.
En caso de no haberse finalizado completamente el proyecto a causa de falta de tiempo u otras dificultades, los alumnos deberán realizar una presentación explicando los avances dentro del mismo, dificultades y visión a futuro para su continuidad.
El proyecto y sus avances pasarán a ser parte de un nuevo proyecto al año siguiente.
Estudiantes del equipo 2024 (Timbres Automatizados):
Gianlucca FerrazziFrancisco CharbonnierFederico RussiIgnacio Bello LLanesDiseño y docente del proyecto: AI. Juan Pazos.