IoT Avanzado – Visión desde la Práctica

Inicio: 20 de marzo de 2024 – 18 horas

Dia: Miercoles Horario: 18:00 a 21:00 horas

Nivel avanzado

Modalidad de cursado a distancia

El Curso IoT Avanzado – Una visión desde la Práctica, se trata del segundo nivel para la adquisición de conocimientos y habilidades prácticas en IoT, que sigue el Curso IoT Inicial. Este curso provee los conocimientos a los participantes para que puedan desarrollar soluciones concretas IoT, aplicando las tecnologías y arquitecturas de IoT y, además, la seguridad y los servicios que ofrece IoT. El participante podrá implementar un sistema IoT (físicamente o de manera simulada) con los principales componentes hardware, software, sensores y actuadores, IDEs, entornos en la web y la nube, etc. característicos.

Público objetivo: Dirigido a profesionales, técnicos, y público en general con conocimientos de base integrales sobre IoT. Para su cursado, se sugiere tener los conocimientos compatibles con los contenidos del Curso IoT Inicial, entre ellos sobre: C++, Python, Electrónica Digital, TCP/IP, APIs, etc.
Modalidad de cursado: virtual. Con un encuentro semanal de 3 horas cada uno.
Sugerencia: Que el participante disponga del kit ESP32 NodeMCU para las actividades prácticas. Y si es posible, módulo transceptor IoT Lora SX1276 con antena. De no ser factible, las prácticas podrá realizarlas de manera simulada
Temario:
A) Tema 1: Habilidades Prácticas de Configuración y Programación de Placas de Desarrollo
Subtema 1 Reconocimiento y configuración de una placa de desarrollo modelo
Objetivo
Que el participante comprenda el rol y las funciones asociadas de los puertos de entrada/salida (puertos analógicos y digitales de entrada/salida), pines especiales, sobre los buses de comunicación disponibles en una placa de desarrollo tomada como modelo (SPI, I2C, UART, etc), y reconocer el IDE de Arduino, y algunos simuladores tipo Wokwi.

Contenido
1.1. Reconocimiento de una placa de desarrollo modelo
1.2. Características técnicas y descripción general del Pinout
1.3. Descripción con más detalle del Pinout
1.4. Componentes típicos de un montaje IoT básico
1.5. Conexión física, IDE de Arduino e instalación del paquete ESP32 de Espressif Systems
1.6. IDE de Arduino y selección del módulo ESP32 Devkit v1
1.7. Simulador Wokwi
1.8. Simulador TinkerCAD

Subtema 2: Programación con Arduino y Python
Objetivo
Que el participante pueda describir y comprender los elementos físicos básicos que nos sirven para comunicarnos con las “cosas”, como sensores y actuadores, sus principios de funcionamiento y usos principales.
Contenido
2.1. Detalles del IDE de Arduino
2.2. Ejemplos de programación Arduino
2.3. Programación con MicroPython
2.4. Detalles del IDE Mu para MicroPython
2.5. Ejemplos de programación MicroPython
2.6. Otros IDEs de MicroPython

Subtema 3: Configuración en detalles de GPIOS, pines especiales, y de comunicaciones usando MicroPython
Objetivo
Que el participante entienda sobre los aspectos más importantes para la configuración avanzada de las placas de desarrollo, comprenda los aspectos relevantes para la conexión y configuración de variables analógicas y digitales, conozca los métodos de configuración de entradas-salidas y funcionalidades especiales, y sobre la habilitación de los protocolos de comunicación, tipo I2C, SPI y UART.
Contenido
3.1 Visión y consideraciones generales
3.2 Entradas y Salidas Digitales
3.3 Entradas Analógicas
3.4 PWM – Pulse Width Modulation
3.5 Pines de contacto en ESP32
3.6 Interrupciones
3.7 Temporizadores
3.8 Sueño Profundo y temporizador despertador
3.9 Comunicaciones serie: UART, I2C y SPI

B) Tema 2: Habilidades Prácticas de Configuración y Programación de Protocolos de Comunicación Locales a las Placas de Desarrollo
Subtema 4 Comunicaciones Bluetooth y WiFi
Objetivo
Que el participante entienda las características tecnológicas y programación en placas de desarrollo de algunos de los estándares de comunicaciones habituales en el despliegue IoT, a saber: Bluetooth, y Wi-Fi.
Contenido
4.1. Bluetooth
4.2. Bluetooth Classis y Bluetooth Low Energy
4.3. Perfil y alcance de Bluetooth
4.4. Versiones de Bluetooth
4.5. Detalles de Bluetooth en ESP32
4.6. Ejemplo de programación Bluetooth Clásico en ESP32
4.7. Ejemplo de programación Bluetooth Low Energy (BLE) en ESP32
4.8. Ejemplo de programación de Servidor y Cliente BLE en ESP32
4.9. Wi-Fi
4.10. Estándares IEEE 802.11
4.11. Control de Acceso al Medio Wi-Fi
4.12. Detalles de Wi-Fi en ESP32
4.13. Ejemplo de programación Wi-Fi en ESP32

Subtema 5 Comunicaciones Lora
Objetivo
Que el participante entienda las características del protocolo Lora, y reconozca las formas de integración del protocolo Lora a las Placas de Desarrollo. Finalmente, que comprenda algunos ejemplos de codificación Lora.

Contenido
5.1. LoRa
5.2. LoraWAN
5.3. Módulo transceptor de RF RFM95/96/97/98 de Hoperf
5.4. Placa de desarrollo OLED TTGO LoRa32 SX1276
5.5. Visión general de una Aplicación LoRa
5.6. Ejemplo de aplicación LoRa
5.7. Puerta de Enlace LoRaWAN
5.8. Gateway LoRaWAN Comercial
5.9. LoraWAN: Puerta de enlace ESP32 LoRa de 1 canal

C) Tema 3: Habilidades Prácticas de Configuración y Programación Segura de Entornos, Ambientes y Protocolos para la Integración Web o de Nube
Subtema 6 Comunicaciones MQTT y HTTP
Objetivo
Que el participante entienda las características tecnológicas y programación en placas de desarrollo de algunos de los estándares de comunicaciones más habituales en el despliegue IoT, a saber: MQTT, y HTTP.

Contenido
6.1. MQTT
6.2. Servicio de alojamiento en la nube – Digital Ocean
6.3. Ejemplo de uso de broker MQTT en la nube
6.4. Ejemplo de uso de MQTT y Node-RED en la nube
6.5. Ejemplo de uso de MQTT y Node-RED en Rapsberry
6.6. GET y POST de HTTP
6.7. Ejemplo de ESP32 HTTP GET
6.8. Ejemplo de ESP32 HTTP POST
6.9. Ejemplo de ESP32 HTTP GET usando APIs OpenWeather y ThinkSpeak
6.10. Ejemplo de ESP32 HTTP POST usando APIs ThinkSpeak y IFTTT

Subtema 7 Servidores Web y Redes LoRa-TTN, y casos con InfluxDB y MySQL

Objetivo
Que el participante conozca diferentes formas de construcción de servidores web en IoT usando ESP32, establezca la importancia de los distintos elementos de comunicación LoRa, y su integración en la Red TTN, y reconozca la capacidad de integración con las tecnologías InfluxDB y MySQL en los proyectos de IoT.

Contenido
7.1. Servidor web
7.2. Servidor web en ESP32 – Controla dos salidas
7.3. Servidor web en ESP32 – Accede a Módulo BME 280
7.4. Servidor web en ESP32 – Integración con Lora
7.5. Redes LoRa y TTN
7.6. Cuenta en TTN
7.7. Clases de dispositivos finales y activación LoRaWAN
7.8. Gateways y Servidores TTN
7.9. Registración de Gateways y Dispositivos finales en TTN
7.10 Ejemplo usando InfluxDB
7.11. Ejemplo usando MySQL

Subtema 8 Seguridad en IoT

Objetivo
Que el participante comprenda la importancia de la Seguridad Informática, conozca sobre los componentes y alcances de la Seguridad, entienda sobre la Seguridad en IoT, y reconozca el impacto de la Seguridad en el Stack IoT.

Contenido
8.1. Seguridad en IoT
8.2. Concepto de Seguridad Informática
8.3. Definiciones de términos de seguridad
8.4. Técnicas de Integridad
8.5. Técnicas de Confidencialidad
8.6. Técnicas de Disponibilidad
8.7. Problemas Seguridad en IoT
8.8. ¿Cómo enfrentar la Seguridad en IoT?
8.9. Ejemplo de Cliente HTTPS
8.10. Ejemplo de Comunicación Segura entre ESP32s

Modalidad de dictado: virtual (sincrónico). 1 encuentro semanal.

Duración: 16 semanas (50 horas en 4 meses)

Dia de cursado: Miércoles Horario: de 18:00 a 21:00 horas

Costos: 4 cuota de $50.000 cada una

Medios de pago: RapiPago, PagoFacil, y MercadoPago

Importante: la Facultad no realiza devoluciones, salvo errores involuntarios en montos de las cuotas.

Duración: 16 semanas (50 horas en 4 meses)
Público objetivo: Dirigido a profesionales, técnicos, y público en general con conocimientos de base integrales sobre IoT. Para su cursado, se sugiere tener los conocimientos compatibles con los contenidos del Curso IoT Inicial, entre ellos sobre: C++, Python, Electrónica Digital, TCP/IP, APIs, etc.
Modalidad de cursado: virtual. Con un encuentro semanal de 3 horas cada uno.