Back to top

Información MOOC

Practical Internet of Things (IoT) with RaspberryPi

Coordinador(a): MIGUEL HERNANDO GUTIÉRREZ
Centro: E.T.S. DE INGENIERÍA Y DISEÑO INDUSTRIAL
Idioma: Inglés
Convocatoria: 2016
Miembros que lo componen
Nombre Centro / Entidad
MIGUEL HERNANDO GUTIÉRREZ E.T.S. DE INGENIERÍA Y DISEÑO INDUSTRIAL
JORGE ARTIEDA TRIGUEROS E.T.S. DE INGENIERÍA Y DISEÑO INDUSTRIAL
ALBERTO BRUNETE GONZÁLEZ E.T.S. DE INGENIERÍA Y DISEÑO INDUSTRIAL
Objetivos del MOOC

El objetivo de este curso es dotar al alumno de los conocimientos y herramientas necesarios para introducirse en el apasionante mundo del IoT. Al realizar el curso, el alumno será capaz de utilizar una Raspberry Pi para monitorizar y controlar dispositivos de su alrededor. Tendrá los conocimientos necesarios para:

  • Utilizar sensores y actuadores que le permitan monitorizar estancias o zonas, y ser capaz de controlar dispositivos. 
  • Desarrollar programas que recojan los datos y se suban a la nube.
  • Realizar aplicaciones móviles que utilicen esos datos para conseguir  un objetivo.

Es importante señalar que el alumno trabajará con dispositivos reales, y al final del curso dispondrá de un prototipo funcional.

 

Objetivos del aprendizaje

1.- Adquirir los conocimientos básicos de Linux aplicado a sistemas embebidos

2.- Desarrollar programas en python que permiten hacer uso de los recursos de la RaspberryPI así como el acceso a Internet y comunicación con el exterior

3.- Conocer y utilizar los periféricos y los sistemas asociados a la Raspberry PI

4.- Disponer de los conocimientos y los protocolos más habituales en la comunicación de dispositivos IoT.

5.- Ser capaz de desarrollar Aplicaciones sobre Android que permitan comunicarse, configurar, y monitorizar sistemas basados en la RaspberryPI

6.- Obtener las competencias sufientes para  desarrollar un sistema completo y funcional capaz de integrarse en el mundo de IoT.

Contenidos y breve descripción de cada capítulo

1. Introducción a Raspbian: Se revisarán los conceptos básicos para utilizar el sistema operativo de la Raspberry Pi (RPi), Raspbian, que está basado en Linux. Cubrirá, entre otros temas, ficheros, procesos, programación de tareas (crontab), ejecución de comandos al inicio (bashrc), etc.

2. Introducción Python/BBDD: Se revisarán los conceptos básicos para hacer programas que utilicen los recursos de la raspberry pi: variables, bucles, funciones, llamadas al OS, librerías.

3. Introducción a la RPi: Se estudiará cómo funciona la Raspberry Pi: uso de los GPIO (lectura de las entradas digitales y activación de las salidas digitales), comunicación y uso del puerto serie e I2C, bus onewire. Alimentación con Baterías (powerbanks, Pb, Li-Ion).

4. Comunicaciones: Se describirá cómo configurar, gestionar y utilizar las comunicaciones, tanto las embebidas (WiFi, Bluetooth, Ethernet), como a través de periféricos (pinchos USB o modems GSM para redes GSM/3G/4G).

5.   Periféricos:  Se describirá el uso de algunos sensores y actuadores para la Raspberry,  para que el usuario sea capaz de utilizar los que necesite.

6. Internet: Se describirán los conceptos básicos de las comunicaciones por Internet a través de HTTP, TCP/IP, REST. Se verán algunas librerías para trabajar en la RPi, como CURL.

7. Plataformas Cloud: Se adentrará al alumno en el mundo “cloud” y la inmensa variedad de servicios que ofrece para tratar datos. Se mostrará cómo alojar sus datos en plataformas cloud como Carriots, Thingspeak, etc.

8.  HMI: finalmente se mostrará como realizar un sencillo interfaz móvil a través del cual se pueda acceder a la Raspberry y programar tareas. Se utilizará una herramienta llamada AppInventor.

9. Proyecto final de curso: el alumno desarrollará un sistema IOT basado en los elementos estudiados en las unidades anteriores, obteniendo como resultado un prototipo funcional (estación metereológica).

 

Elementos multimeda e innovadores

El curso tiene una componente claramente práctica por lo que se hará un esfuerzo en dotarle de la interactividad que asegure que los alumnos van realizando los distintos ejercicios con los que se dinamiza y vertebra la exposición.

Además de utilizar la imagen de video compartida, en la que el profesor a la vez que explica va realizando sobre su propio sistema la parte práctica de la exposición, se incluyen elementos de evaluación rápida que fomentan la atención del alumno. Estos elementos de evaluación consistirán tanto en test tradicionales como en pequeños ejercicios en donde se debe escribir código que, al tratarse de Python, es fácil de validar de forma automática.

Además, por la naturaleza del curso, está previsto realizar una conexión a un servidor remoto que mediante una sistema de codificación permite validar que cada alumno concreto ha sido capaz de realizar un ejercicio. Este sistema solo se utilizará en puntos concretos a lo largo del curso, pero obliga al alumno a aplicar lo explicado antes de pasar al apartado siguiente.

Para que dicho sistema funcione se combinará la plataforma clásica de MOOC (Miriadax) con un sistema propio alojado en los servidores del departamento.

Caracter estratégico del curso

El Internet de las Cosas, o Internet of Things (IoT) tiene una repercusión extraordinaria en la actualidad. El Instituto de la Ingeniería de España (IIE) la incluyó en el ciclo de conferencias “Las 10 tecnologías que cambiarán nuestras vidas”, en el año 2015. Las perspectivas de crecimiento son enormes. Se prevé que en el año 2020 haya entre 31 billones (Intel) y 50 billones (Ericsson) de dispositivos conectados, de los que una gran parte (70% ) usarán comunicaciones “short-range”, las que competen al IoT. El año pasado, en el CES, el CEO de Samsung Boo-Keun Yoon predice que para el 2017, el 90% de los productos de Samsung estarán conectados a Internet. Y en 2020 todos sus productos estarán conectados a Internet, sin importar que sea un aspirador o un purificador de aire. La aparición de dispositivos IoT está incluso fomentada con la aparición de nuevas redes de comunicación LPWA (Low Power Wide Area) como SIGFOX, una solución de conectividad celular mundial para el IoT pensada para comunicaciones de baja velocidad que permite reducir los precios y el consumo de energía para los dispositivos conectados.

Es por ello que hay muchos estudiantes de tecnología que buscan completar su formación con cursos sobre IoT. Las plataformas más usadas, como Coursera o Udemy, tienes varios cursos relacionados con IoT. Coursera tiene un “Programa Especializado en Internet de las Cosas” y Udemy diferentes cursos amateurs. Grandes universidades como Princeton, King’s College London, Yonsei University, University of California o Stanford ofrecen cursos online

Destinatarios, perfil del alumno potencial

El curso está pensado para estudiantes con una orientación tecnológica. El enfoque del curso es fundamentalmente práctico y por lo tanto no requiere una formación específica en ningún área. Sin embargo es deseable cierta familiaridad con conceptos tecnológicos. En concreto son deseables conocimientos básicos de informática (Linux) y programación (C/C++, Java o Python). Estos conceptos se repasan durante el curso para homogeneizar los conocimientos necesarios pero una base permitirá seguir el curso con solvencia.

 

Indicadores para el seguimiento y evaluación del curso

El seguimiento y la evaluación del curso se realizará a través de diversos elementos teórico-prácticos: tests, cuestiones cortas y ejercicios de programación semanales que se validarán contra un servidor. Al final del curso el alumno deberá realizar un trabajo que será evaluado por otros alumnos del curso mediante una rúbrica realizada por los profesores del curso. El objetivo del curso será crear una nueva “cosa” dentro del IoT.

 

Actividades de dinamización previstas

La conexión a un servidor remoto se utilizará en puntos concretos a lo largo del curso, lo que obliga al alumno a aplicar lo explicado antes de pasar al apartado siguiente. Consideramos que, además, este modo de exponer “orientado  al caso” tienen un efecto realmente positivo haciendo el curso muy atractivo.

Además durante el curso se irá realizando una estación metereológica totalmente operativa accesible desde una aplicación de móvil gracias a la combinación tanto de RaspberryPI, con python, y AppInventor,  así como el uso de las plataformas abiertas (carriots) que permiten el almacenamiento remoto y compartido de datos y la conexión a los mismos desde aplicaciones.  

Por último, sin tener definido aún el sistema, es nuestra intención implementar algún tipo de karma en los perfiles de alumnos que permitan darle un punto de gamificación, en principio atendiendo a los resultados de los ejercicios y por supuesto a la intervención del alumno en las respuestas a las consultas de sus compañeros.