16 / 5 / 2020 - Tecnologías IoT, Hands on y MVP

De binefa.com
Salta a la navegació Salta a la cerca

Conceptos previos (15 / 5 / 2020)

- Concepto de sistema encastado (embbeded) pequeño y sofisticado. Diferencias entre Arduino y Raspberry Pi.

- Arduino básico. Blink, el Hola mundo en Arduino.

- Entradas y salidas (I/O) digitales y analógicas.

- Noción de broker MQTT (Mosquitto y EMQX)

- MySQL básico. Instancia al servidor vps656540.ovh.net

- Acceso básico a MySQL desde Node y Python.

- Noción de NodeRED como a app de Node

- Protocolo Firmata

Temario (16 / 5 / 2020)

Introducción a la placa IoT-02

Añadir ESP32 al IDE de Arduino

Mostrar ejemplo con microrruptores, reed y relés.

Entradas y salidas de sensores

UART

Foto de la placa vermell amb el pont.

Instalación drivers para UART

Programas de acceso directo a la UART

Acceso directo a la UART desde el IDE de Arduino

La placa IoT-02 usa dos UART (de las tres posibles en el ESP32). La primera es para la programación del firmware y la segunda se usa para la comunicación ModBus-RTU (protocolo industrial usado desde finales de los años 70 del siglo XX y todavía muy usado para la lectura de sensores y presente en cualquier sistema SCADA industrial).

SPI

El bus SPI en Arduino

Este puerto está implementado en la placa IoT-02 para la parte de LoRaWAN (control del RFM95). Debido a la circunstancia excepcional de no realizar las clases presencialmente no se puede garantizar la cobertura de pasarelas LoRa en todas las ubicaciones donde están los alumnos. Por eso se ha optado por no proporcionarlo, ante la desventaja que supone tener que conectar siempre la antena de 868MHz si el módulo RFM95 está soldado.

I2C

El bus I2C en Arduino

En la placa IoT-02 hay dos conectores para conectar un BME280 (o BME680) y una pantalla OLED de 0,97".

Programa para escanear todos los dispositivos I2C conectados.

Conexión WiFi

Escaneo de las conexiones WiFi disponibles

00_wifiScan

Firmware que lee cada 5 segundos las conexiones WiFi disponibles y su potencia en dBm

Conexión a una WiFi

02_simpleWiFi

Firmware para conectar a una WiFi

Connectividad a múltiples WiFi

03_wifiMultiple

Firmware para conectar a una WiFi de un listado

Solución a problemas de conectividad WiFi

04_wifiReset

Cuando exista dificultad para conectarse a cualquier WiFi es aconsejable hacer reset. Por prudencia, es conveniente introducir esta función de reset cada vez que se intente una conexión WiFi. (No todos los códigos expuestos en este curso incorporan la función reset de WiFi. En caso de tener problemas de conectividad se sugiere incorporarlo)

Protocolos TCP

TCP (Transmission Control Protocol): retrato del protocolo de transporte

HTTP

Generalidades del protocolo HTTP

01_simpleWifiServer

Firmware que presenta una página web en HTML capaz de controlar el led blanco

MQTT y MQTTS

¿Qué es MQTT? Su importancia como protocolo IoT

Conexión entre la placa IoT-02 y Snap! mediante MQTT

Protocolo UDP

UDP: ¿qué es el protocolo UDP?

Firmware que implementa el protocolo UDP para la placa IoT-02.

unsigned int udpPortRx = 3334;
unsigned int udpPortTx = 3333;

Introducción a NodeRED

04_wifiUdp

Código para importar en el NodeRED funcionando con el protocolo UDP. El puerto de recepción del ordenador (3333) tiene que ser el de transmisión de la placa y el de recepción de la placa (3334) tiene que ser el de transmisión del ordenador.

Puerto Rx = 3333
Puerto Tx = 3334

Graficación básica con el DashBoard del NodeRED

06_udpNodeRed


07_udpNodeRed


Código para importar en el NodeRED funcionando con el protocolo UDP y graficando la lectura analógica de la LDR. Se hacen consultas en el intervalo de un segundo. Para la visualización se usa una gráfica (chart) y un reloj (gaugage). También se han incorporado unos botones para controlar el led blanco y el verde.

Ejercicio

Añadir el control del relé de enclavamiento y el control de los leds amarillo y rojo.

Monitorizar el estado de los tres botones y el del relé de enclavamiento.