Diferència entre revisions de la pàgina «16 / 5 / 2020 - Tecnologías IoT, Hands on y MVP»
m (→BME280) |
m (→Conexión WiFi) |
||
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 28: | Línia 28: | ||
[[Image:17releReedMicrorruptores.jpg|center|thumb|Conexión de la placa IoT-02 con relé Reed, microrruptores y relés]] | [[Image:17releReedMicrorruptores.jpg|center|thumb|Conexión de la placa IoT-02 con relé Reed, microrruptores y relés]] | ||
+ | |||
+ | [https://www.futurlec.com/Datasheet/Relays/HFD2.pdf Hoja de características del relé de enclavamiento HFD2/005-M-L2-D] | ||
== Entradas y salidas de sensores== | == Entradas y salidas de sensores== | ||
Línia 33: | Línia 35: | ||
[[Image:15uart.jpg|center|thumb|UART con chip FT232 de FTDI]] | [[Image:15uart.jpg|center|thumb|UART con chip FT232 de FTDI]] | ||
− | Esta placa tiene la opción de poder funcionar a 5V o 3,3V. Para el Arduino Nano o Uno tiene que ir a 5 voltios. Para el ESP32 (chip microcontrolador de la placa IoT-02) o para la Raspberry Pi tiene que ir a 3,3 voltios. Esta selección se hace mediante un puente (''jumper''). Por defecto, en vuestro kit ya venía seleccionado con el puente en la posición de 3,3 voltios. | + | Esta placa tiene la opción de poder funcionar a 5V o '''3,3V'''. Para el Arduino Nano o Uno tiene que ir a 5 voltios. Para el ESP32 (chip microcontrolador de la placa IoT-02) o para la Raspberry Pi tiene que ir a '''3,3''' voltios. Esta selección se hace mediante un puente (''jumper''). Por defecto, en vuestro kit ya venía seleccionado con el puente en la posición de '''3,3''' voltios. |
[[Instalación drivers para UART]] | [[Instalación drivers para UART]] | ||
Línia 89: | Línia 91: | ||
[https://binefa.cat/training/upcSchool/20200516/IoT-02_wifi_02_simpleWiFi.zip Firmware comprimido en zip para conectar a una WiFi]. [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_wifi_02_simpleWiFi IoT-02_wifi_02_simpleWiFi en GitHub] | [https://binefa.cat/training/upcSchool/20200516/IoT-02_wifi_02_simpleWiFi.zip Firmware comprimido en zip para conectar a una WiFi]. [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_wifi_02_simpleWiFi IoT-02_wifi_02_simpleWiFi en GitHub] | ||
− | === | + | === Conectividad a múltiples WiFi === |
[[Image:03wifiMultiple.png|center|03_wifiMultiple]] | [[Image:03wifiMultiple.png|center|03_wifiMultiple]] | ||
Revisió de 11:12, 8 oct 2020
Contingut
Conceptos previos (15 / 5 / 2020)[modifica]
- 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)[modifica]
Introducción a la placa IoT-02[modifica]
Añadir ESP32 al IDE de Arduino
Firmware comprimido en zip de test de la placa IoT-02. IoT-02_11_modbus_bme280 en GitHub. Este es el firmware que iba instalado cuando os llegó la placa.
Muestra en línea del ejemplo inicial con microrruptores, relés reed y relés convencionales:
Hoja de características del relé de enclavamiento HFD2/005-M-L2-D
Entradas y salidas de sensores[modifica]
UART[modifica]
Esta placa tiene la opción de poder funcionar a 5V o 3,3V. Para el Arduino Nano o Uno tiene que ir a 5 voltios. Para el ESP32 (chip microcontrolador de la placa IoT-02) o para la Raspberry Pi tiene que ir a 3,3 voltios. Esta selección se hace mediante un puente (jumper). Por defecto, en vuestro kit ya venía seleccionado con el puente en la posición de 3,3 voltios.
Programas de acceso directo a la UART
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).
Conexión de la UART a la placa IoT-02 para hacer la programación[modifica]
Posición de la conexión de la placa UART para la programción de la placa IoT-02:
El cable microusb de alimentación (de color negro en la foto) sirve para proporcionar 5 voltios. Es necesario para poder activar y desactivar el relé blanco de la placa, así como la parte de ModBus-RTU.
SPI[modifica]
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[modifica]
En la placa IoT-02 hay dos conectores para conectar un BME280 (o BME680) y una pantalla OLED de 0,97".
Firmware comprimido en .zip para escanear todos los dispositivos I2C conectados. IoT-02_06_i2cScanner en el GitHub
OLED[modifica]
La dirección I2C de la pantalla OLED es 0x3C.
Firmware comprimido en .zip de prueba de funcionamiento de la pantalla OLED en la placa IoT-02. IoT-02_07_SSD1306 en el GitHub
BME280[modifica]
La dirección I2C del sensor BME280 es 0x76 (o 0x77 para el sensor BME680). Los datos leídos desde el BME280 se presentan en la pantalla OLED. Ambos dispositivos están usando el protocolo I2C. Esta versión de BME280 tiene el patillaje previsto para poder funcionar con el bus SPI, pero la placa IoT-02 está configurada para ir exclusivamente por el puerto I2C.
Firmware comprimido en .zip de prueba de funcionamiento del sensor BME280 en la placa IoT-02. IoT-02_07_SSD1306_BME280 en el GitHub
Conexión WiFi[modifica]
Escaneo de las conexiones WiFi disponibles[modifica]
Firmware comprimido en .zip que lee cada 5 segundos las conexiones WiFi disponibles y su potencia en dBm. IoT-02_wifi_00_scan en el GitHub
Conexión a una WiFi[modifica]
Firmware comprimido en zip para conectar a una WiFi. IoT-02_wifi_02_simpleWiFi en GitHub
Conectividad a múltiples WiFi[modifica]
Firmware comprimido en zip para conectar a una WiFi de un listado. IoT-02_wifi_03_multWiFi en GitHub
Solución a problemas de conectividad WiFi[modifica]
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[modifica]
TCP (Transmission Control Protocol): retrato del protocolo de transporte
HTTP[modifica]
Generalidades del protocolo HTTP
Firmware comprimido en zip que presenta una página web en HTML capaz de controlar el led blanco. IoT-02_wifi_01_simpleWiFiServer en GitHub
MQTT y MQTTS[modifica]
¿Qué es MQTT? Su importancia como protocolo IoT
Más información sobre MQTT y MQTTS
Conexión entre la placa IoT-02 y Snap! mediante MQTT
Protocolo UDP[modifica]
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[modifica]
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[modifica]
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[modifica]
Sistema Scada (control y supervisión):
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.
- Ayuda: Es muy útil monitorizar un estado usando código de colores. Código en NodeRED capaz de cambiar el color de un indicador