Tecnologías IoT, Hands on y MVP

De Wiki d'en Jordi Binefa
La revisió el 11:54, 23 abr 2019 per Jordi (discussió | contribucions) (I2C)
Dreceres ràpides: navegació, cerca

13/4/2019

Drivers y software

Introducción al Arduino

Información general y enlaces sobre la placa S4A

Entornos de programación por bloques

El ordenador supervisa y controla el Arduino

Descarga de Snap4Arduino

El entorno Snap4Arduino se comunica a la placa mediante el protocolo firmata

Ejercicios prácticos usando:

Primer contacto

- Botones y leds de la placa S4A PLB

- Placa de relés

Entradas pasivas

- Teclado de membrana

- Microrruptor (o final de carrera)

- Relé Reed

- Potenciómetro

- Joystick

- LDR

Entradas activas

- Sensor de infrarojos

- PIR de lente de Fresnel

- Sensor ultrasónico medidor de distancia

Ultrasonic Sensor HC-SR04 and Arduino Tutorial

Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino

Actuadores

- Servomotor


Arduino autónomo

Simulación en línea. Tinkercad Permite simular hardware, programar en bloques y generar código para el IDE de Arduino


IDE de Arduino

Arduino Nano

Conceptos básicos

Código s4a_test_00.ino para leer y escribir parámetros al Arduino desde el ordenador, usando el propio IDE de Arduino, GtkTerm (desde GNU/Linux) o putty (desde Windows).

Flancos

UART

s4a_softwareSerial

I2C

s4a_i2c_scanner

Expansor digital d'entrades i/o sortides PCF8574

Exemples d'ús

OLED

s4a_pwm_01

SPI

RFID - MFR522

ReadNUID

Diagrama de connexions

Between Two Arduino

SPI – Sample of master and slave using two Arduino

ModBUS

s4a_modbusRTU_rs485_01

ESP8266

Conceptos básicos

Código ESP8266_06c_TestPins.ino para leer y escribir parámetros al Arduino desde el ordenador, usando el propio IDE de Arduino, GtkTerm (desde GNU/Linux) o putty (desde Windows).

Conexión a diversas redes WiFi

Conexión a diversas redes WiFi

Uso de MQTT en el ESP8266

MQTT en el ESP8266

Más información sobre el protocolo MQTT

ESP32

Sobre el ESP32

Bot de Telegram

Un exemple d'us de Telegram amb el NodeRed

27/4/2019

ESP8266

Conceptos básicos

Código ESP8266_06c_TestPins.ino para leer y escribir parámetros al Arduino desde el ordenador, usando el propio IDE de Arduino, GtkTerm (desde GNU/Linux) o putty (desde Windows).

Conexión a diversas redes WiFi

Conexión a diversas redes WiFi

Uso de UDP en el ESP8266

Código UDP para el ESP8266 pudiendo usar múltiples redes WiFi

Aplicación (.apk) para Android desarrollada en Qt5 para enviar y recibir datagramas UDP

Código de la aplicación para Android desarrollada en Qt5 para enviar y recibir datagramas UDP

Captura de pantalla de flujos NodeRED usando UDP para conectarse al ESP8266

Código para importar al NodeRED, usando UDP para conectarse al ESP8266

Uso de ModBus TCP en el ESP8266

Vídeo "Understanding Modbus Serial and TCP/IP"

Uso de ModBus TCP en Python comunicando con el ESP8266

Desde el terminal hemos de cargar la biblioteca pyModbusTCP usando pip:

sudo pip3 install pyModbusTCP

Simulación de servidor ModBus TCP desde Python. Para solucionar el problema de ejecutar en GNU/Linux un archivo de Python hecho en Windows.

Código ModBus TCP para ESP8266

Cliente ModBus TCP en Python para leer la LDR del ESP8266

Cliente ModBus TCP en Python para escribir y leer el color rojo del led tricolor del ESP8266

Cliente ModBus TCP en Python para escribir y leer el color rojo del led tricolor del ESP8266 y el botón de la placa superior

Uso de nodos ModBus TCP en el NodeRED comunicando con el ESP8266

La mayoría de contribuciones ModBusTCP en NodeRED preguntan cíclicamente al dispositivo servidor. La excepción es node-red-contrib-modbustcp-no-pooling. Debido a que no está actualizado desde hace más de dos años, estos nodos no funcionan correctamente en versiones modernas de NodeRED. Una solución es usar los códigos desarrollados en Python en el apartado anterior y hacerlos servir desde NodeRED.

Captura de pantalla de flujos NodeRED usando Python para ModBus TCP

Código para importar al NodeRED, usando Python para ModBus TCP

Grupo de códigos en Python adaptados para funcionar una sola vez cuando son llamados

Ejercicios de ModBus TCP con el ESP8266

- Modificar el código del ESP8266 para añadir los coils de control de los leds verde y azul del led tricolor del ESP8266

- Hacer un cliente ModbusTCP desde Python que haga una secuencia semafórica

- Añadir al tablero de control del NodeRED el control del led verde y azul

Uso de MQTT en el ESP8266

MQTT en el ESP8266

Código MQTT para ESP8266 usando el IDE de Arduino

Más información sobre el protocolo MQTT

Configuración de MQTT Dash en Android

Ejercicios de MQTT con el ESP8266

- Uso del NodeRED y MQTT

- Uso del panel de control del NodeRED y MQTT

Raspberry

MQTT_i_MQTTS

ESP32

Sobre el ESP32

Código de prueba de los 4 botones y los 4 leds

I2C

Explicación del I2C (o TWI ) entre las páginas 57 y 68

Código para escanear las direcciones de todos los dispositivosus I2C conectados: esp32_i2cScanner_02.ino.

0x20 - 0x27 (b0: 3 b1: 2 b2: 1): PCF8574 (de un tipo)
0x38 - 0x3F (b0: 3 b1: 2 b2: 1): PCF8574 (de otro tipo)
0x3C: OLED
0x48: ADS1115
0x50 y 0x68: RTC
0x69: GY-521 (Cable verde entre AD0 y VCC. Para evitar que sea 0x68 y colisione con el RTC)
0x76: BME280

Puede haber conflicto de direcciones entre el PCF8574 y la pantalla OLED.

ADC - ADS1115

El chip ADS1115 tiene 4 canales de 16 bits. Las lecturas se hacen mediante el bus I2C.

En la placa lila PLB-IoT-I2C, cuando la placa ADS1115 está conectada, una entrada lee la tensión de la batería del RTC y las otras tres leen el valor de los potenciómetros conectados a la placa.

Código de pruebas para el ADC ADS115

OLED - SSD1306

Demostració bàsica d'us de la pantalla OLED

RTC - DS1307

RTC: Real Time Clock

Reloj usando RTC y pantalla OLED

BME280

MQTTS

Almacenaje y visualización de datos IoT

Bases de datos de series temporales

Instalación de InfluxDB

Visualización

Instalación de Grafana en Debian

Pantalla táctil Nextion