Introducción

¿Por qué el curso?

Una aplicación o sistema basado en el Internet de las cosas involucra la construcción de aplicaciones para los sistemas embebidos, los servidores en la nube, sitios web y aplicaciones móviles. Para los tres últimos se cuenta con una mayor cantidad de programadores entrenados que para la programación de los primeros. Por tanto, es necesario formar dichos programadores en las particularidades y restricciones que impone la construcción de software para los sistemas embebidos.

Objetivo del curso

Formar programadores con las competencias necesarias para construir aplicaciones para los sistemas embebidos que componen una aplicación de Internet de las cosas.

Prerrequisitos

Para tomar este curso se requieren conocimientos y experiencia en algún lenguaje de programación. En el curso se trabajará en lenguaje C.

El hardware que utilizaremos es el ESP32 y el framework ESP-IDF

Aunque no es obligatorio, se recomienda utilizar Linux como sistema operativo host.

Competencias específicas

  1. Emplea frameworks de tiempo real y el lenguaje de programación C para implementar el software de los sistemas embebidos utilizados en aplicaciones de IoT.

  2. Emplea mecanismos de conectividad para configurar el software del sistema embebido y para comunicarse con servidores en la nube de manera segura.

  3. Implementa características en el software del sistema embebido que posibilitan el control remoto de las salidas y reportar el estado de las entradas.

  4. Implementa software para sistemas embebidos que puede ser actualizado remotamente.

Metodología

El curso se estructura alrededor del ANÁLISIS detallado de un proyecto IoT completo y listo para producción. La construcción del proyecto se realiza paso a paso. Cada paso introduce nuevas características que son analizado mediante ejercicios que permiten explorar los conceptos fundamentales involucrados en la implementación de dicha característica. Al finalizar cada parte se propone una variación simple, una adición al proyecto o un ejercicio para complementar el análisis.

Estructura del curso y tiempos

El curso está dividido en 8 unidades. Cada unidad dura 1 semana.

  • Unidad 1: presentación (7 horas).

  • Unidad 2: hello world (8 horas).

  • Unidad 3: drivers (7 horas).

  • Unidad 4: conexión WiFi (7 horas).

  • Unidad 5: configuración de la red WiFi (8 horas).

  • Unidad 6: nube (8 horas).

  • Unidad 7: actualización remota (OTA) (8 horas).

  • Unidad 8: fabricación (7 horas).

Dedicación

Cada semana tendremos 2 horas de sesiones sincrónicas y 5 o 6 horas de trabajo en los ejercicios de análisis del proyecto.