Diferència entre revisions de la pàgina «Curso práctico de programación de electrónica embebida de bajo coste para la Internet de las Cosas. Edición del 13 al 16 de Mayo de 2024. Días 14 y 15»

De binefa.com
Salta a la navegació Salta a la cerca
Línia 35: Línia 35:
  
 
Simulación del código en MicroPython [https://wokwi.com/projects/344353328302391891 uPython_00_blinky.py] en [https://wokwi.com/ wokwi]
 
Simulación del código en MicroPython [https://wokwi.com/projects/344353328302391891 uPython_00_blinky.py] en [https://wokwi.com/ wokwi]
 +
 +
= Exemples bàsics d'actuadors =
 +
[https://wokwi.com/arduino/projects Carpeta de projectes a Wokwi]
 +
 +
=== Control de 4 leds amb ESP32 ===
 +
[https://wokwi.com/projects/329845964804194900 Control de quatre leds al Wokwi] [https://github.com/jordibinefa/IoT-02/blob/master/codes/IoT-02_01_leds/IoT-02_01_leds.ino IoT-02_01_leds.ino al GitHub]
 +
 +
=== Control d'un relé ===
 +
[https://www.binefa.cat/training/ceic/20220330/s4a/20181031_ceic_02.pdf Pàgines 13, 17 i 18]
 +
 +
[https://wokwi.com/projects/322802227591774802 Set / Reset amb un parell de relés sense microcontrolador simulat a Wokwi]
 +
 +
[https://www.tinkercad.com/things/1O4C6ZoLpdB Relé al TinkerCad]
 +
 +
[https://www.tinkercad.com/things/8y6p1MUZXTT Circuit d'enclavament al TinkerCad]
 +
 +
==== Arduino Uno ====
 +
[https://wokwi.com/projects/322846360729551444 Control d'un relé a Wokwi emprant Arduino Uno]
 +
 +
==== ESP32 ====
 +
[https://wokwi.com/projects/329903075159442004 Control d'un relé a Wokwi emprant ESP32]
 +
 +
=== Servomotors ===
 +
[https://www.binefa.cat/training/ceic/20220330/s4a/20181031_ceic_02.pdf Pàgines 31 a 40]
 +
 +
==== Arduino Uno ====
 +
[https://wokwi.com/arduino/libraries/Servo/Knob Potenciòmetre controlant la posició d'un servo emprant Arduino Uno]
 +
 +
[https://wokwi.com/arduino/libraries/Servo/Sweep Escombrat de posicions d'un servo emprant Arduino Uno]
 +
 +
==== Arduino Mega ====
 +
[https://wokwi.com/projects/305336312628511297 Exemple de control de 31 servos]
 +
 +
==== ESP32 ====
 +
[https://www.arduino.cc/reference/en/libraries/esp32servo/ Biblioteca de control de servomotors per a ESP32 a l'IDE d'Arduino]
 +
 +
[https://wokwi.com/projects/323706614646309460 Simulació a Wokwi d'un servo amb ESP32 tenint permisos per a pujar biblioteques]
 +
 +
[https://wokwi.com/projects/329900810993402450 Simulació a Wokwi d'un servo amb ESP32 sense tenir permisos per a pujar biblioteques]
  
 
== Snap! y Wokwi combinados ==
 
== Snap! y Wokwi combinados ==

Revisió del 18:16, 13 maig 2024

Programa

Programa de K-LAGAN Curso práctico de programación electrónica "embeded low-cost para la IOT. Edición del 13 al 16 de Mayo de 2024.

Acceso al Moodle del curso

Videoconferencia en Zoom (ID de reunión: 861 0410 1719) Os han enviado un código de acceso por correo electrónico.

Los sistemas embebidos

Microcontroladores de escala pequeña

Una introducción a Arduino (Comentado el primer día)

Microcontroladores de escala mediana

Distribución de pines en el ESP32-VROOM

Placa IoT-02 (Introducción a la placa IoT-02 en pdf)

Microcontroladores de escala sofisticada

Un ejemplo de electrónica embebida controlada por una Raspberry Pi: IoT-Vertebrae (MAC ESP32: 70B8F662BC7C )

Gemelos digitales

TinkerCAD

Ejemplo de Arduino con electrónica exterior (dos potenciómetros para la lectura analógica y leds):

  • Comunicación básica con el ejemplo: Desde el terminal e enciende un led i con a apaga el led (carácteres 101 y 97 del código ASCII).
  • Graficación del nivel de los potenciómetros del ejemplo: Permite visión graficada quitándole los paréntesis.

Wokwi

Zona de proyectos en Wokwi

Ejemplo de control de 31 servos simulando un Arduino Mega en Wokwi.

Ejemplo de entradas y salidas digitales simulando un ESP32 en Wokwi (Código IoT-02_03_inputs.ino en Github)

Visión graficada usando Wokwi

Simulación del código en MicroPython uPython_00_blinky.py en wokwi

Exemples bàsics d'actuadors

Carpeta de projectes a Wokwi

Control de 4 leds amb ESP32

Control de quatre leds al Wokwi IoT-02_01_leds.ino al GitHub

Control d'un relé

Pàgines 13, 17 i 18

Set / Reset amb un parell de relés sense microcontrolador simulat a Wokwi

Relé al TinkerCad

Circuit d'enclavament al TinkerCad

Arduino Uno

Control d'un relé a Wokwi emprant Arduino Uno

ESP32

Control d'un relé a Wokwi emprant ESP32

Servomotors

Pàgines 31 a 40

Arduino Uno

Potenciòmetre controlant la posició d'un servo emprant Arduino Uno

Escombrat de posicions d'un servo emprant Arduino Uno

Arduino Mega

Exemple de control de 31 servos

ESP32

Biblioteca de control de servomotors per a ESP32 a l'IDE d'Arduino

Simulació a Wokwi d'un servo amb ESP32 tenint permisos per a pujar biblioteques

Simulació a Wokwi d'un servo amb ESP32 sense tenir permisos per a pujar biblioteques

Snap! y Wokwi combinados

Primer uso del protocolo más usado en Internet de las Cosas (MQTT):

ESP32 programado en MicroPython usando MQTT en Wokwi interaccionando con un ESP32 en Snap!

Comunicación con componentes

Páginas 49 a 79

Protocolos internos: I2C, SPI y UART

I2C

Escaneo de direcciones I2C Códigos IoT-02_06_i2cScanner al GitHub

Lectura de la LDR en la pantalla OLED al Wokwi Codis IoT-02_07_SSD1306 al GitHub

Protocolos externos: ModBus, CanBus

Modbus RTU

Resumen del ModBus RTU y ModBus TCP

Ejercicios

Graficación de los valores de temperatura y humedad

Basándoos en el ejemplo Medida de humedad y temperatura con ESP32 al Wokwi, visualizad gráficamente los valores de temperatura y humedad. Acordaos de modificar el archivo diagram.json (después de "connections":[] añadid ,serialMonitor": { "display": "plotter" }). Para dar más inmediatez podéis bajar el tiempo entre lecturas analógicas.

 Serial.print(data.temperature);
 Serial.print(",");
 Serial.print(data.humidity);
 Serial.println("");

Sistema de tres leds que indica la temperatura de confort

Siguiendo los consejos de Determining Thermal Comfort Using a Humidity and Temperature Sensor queremos hacer un sistema con tres ledes de colores. Basándoos en el ejemplo Medida de temperatura empleando un termistor de tipo NTC con ESP32 al Wokwi y el artículo anterior siguiendo la norma ISO7730 (e ignorando el efecto de la humedad relativa), añadid tres ledes de colores (azul, verde y rojo). El led azul se encenderá cuando la temperatura esté por debajo de 20 °C (los otros dos leds tendrán que estar apagados). El led verde se encenderá cuando la temperatura esté entre 20 °C y 26 °C (los otros dos leds tendrán que estar apagados). El led rojo se encenderá cuando la temperatura sea superior a 26 °C (los otros dos leds tendrán que estar apagados).

Indicador de temperatura de confort

Propuesta de distribución de pines:

#define LED_R 23
#define LED_G 27
#define LED_B 32

Parte del código json de distribución de componentes:

 "parts": [
   { "type": "wokwi-esp32-devkit-v1", "id": "esp", "top": -108.67, "left": 55.33, "attrs": {} },
   {
     "type": "wokwi-ntc-temperature-sensor",
     "id": "ntc1",
     "top": -101.06,
     "left": -211.45,
     "attrs": {}
   },
   {
     "type": "wokwi-led",
     "id": "led1",
     "top": -224.4,
     "left": 359.4,
     "attrs": { "color": "red", "flip": "1" }
   },
   {
     "type": "wokwi-resistor",
     "id": "r1",
     "top": -188.05,
     "left": 288,
     "attrs": { "value": "1000" }
   },
   {
     "type": "wokwi-led",
     "id": "led2",
     "top": -157.2,
     "left": 359.4,
     "attrs": { "color": "green", "flip": "1" }
   },

MQTT

El protocolo MQTT

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

Node-RED

Asignación de puertos para el curso de electrónica embebida de bajo coste para la Internet de las Cosas. Edición del 13 al 16 de Mayo de 2024

Uso del NodeRED

Uso de la base de datos MariaDB desde Node-RED

Uso de Telegram desde NodeRED