Diferència entre revisions de la pàgina «Curs pràctic de programació d'electrònica encastada de baix cost per a la Internet de les Coses. Edició 27 i 28 d'abril de 2022»

De binefa.com
Salta a la navegació Salta a la cerca
m
 
(Hi ha 54 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
 
[https://formacio.eic.cat/cursos/1123418 Curs pràctic de programació d'electrònica "embedded low-cost" per a la IoT. Online en Directe] a la [https://formacio.eic.cat/ pàgina del Centre de Formació i Ocupació del Col·legi d'Enginyers Industrials de Catalunya]. Edició 27 i 28 d'abril de 2022
 
[https://formacio.eic.cat/cursos/1123418 Curs pràctic de programació d'electrònica "embedded low-cost" per a la IoT. Online en Directe] a la [https://formacio.eic.cat/ pàgina del Centre de Formació i Ocupació del Col·legi d'Enginyers Industrials de Catalunya]. Edició 27 i 28 d'abril de 2022
  
= Exemples amb Wokwi =
+
= Microcontroladors d'escala petita =
[https://wokwi.com/projects/329840862091543122 Control de quatre leds] [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]
+
[https://www.binefa.cat/training/ceic/20220330/s4a/20181031_ceic_02.pdf Una introducció a Arduino]
 +
 
 +
= Microcontroladors d'escala mitjana =
 +
[https://raw.githubusercontent.com/AchimPieters/esp32-homekit-camera/master/Images/ESP32-30PIN-DEVBOARD.png Distribució de pins a l'ESP32-VROOM]
 +
 
 +
[https://www.binefa.cat/training/iot02/pdf/iot02_00_ca.pdf Introducció a la placa IoT-02] (Formes de programar la [[Placa IoT-02 | placa IoT-02]])
 +
 
 +
= 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]
 +
 
 +
= Exemples bàsics de sensòrica =
 +
[https://www.binefa.cat/training/ceic/20220330/s4a/20181031_ceic_02.pdf Entrades digitals: Pàgines 7 a 9]
 +
 
 +
== Detecció de final de carrera ==
 +
[https://wokwi.com/projects/329840862091543122 Control de leds amb botons al Wokwi] [https://github.com/jordibinefa/IoT-02/blob/master/codes/IoT-02_03_inputs/IoT-02_03_inputs.ino IoT-02_03_inputs.ino al GitHub]
 +
 
 +
== Nivell de lluminositat ==
 +
[https://wokwi.com/projects/329839893260796499 Lectura de l'LDR al Wokwi] [https://github.com/jordibinefa/IoT-02/blob/master/codes/IoT-02_05_ldr/IoT-02_05_ldr.ino IoT-02_05_ldr.ino al GitHub]
 +
 
 +
== Mesura de distància per ultrasons ==
 +
[https://wokwi.com/projects/330033931816534611 Mesura de distància per ultrasons amb ESP32 al Wokwi]
 +
 
 +
== Mesura d'inclinacions i acceleracions ==
 +
[https://wokwi.com/projects/305936654686749250 Mesura d'inclinacions i acceleracions. Arduino Uno + MPU6050 amb Arduino Uno al Wokwi]
 +
 
 +
[https://wokwi.com/projects/305937156771152449 Visualització gràfica d'inclinacions i acceleracions. Arduino Uno + MPU6050 amb Arduino Uno al Wokwi]
 +
 
 +
== Plotter bàsic ==
 +
[https://wokwi.com/projects/330035502407221843 Plotter bàsic amb ESP32 al Wokwi]
 +
 
 +
Recordant d'afegir una coma al principi per a mantenir el format ''json'', hem afegit al final de l'arxiu ''diagram.json'':
 +
"serialMonitor": { "display": "plotter" }
 +
 
 +
* Exemple amb dispositiu físic: [https://www.binefa.cat/training/ceic/20220427/s4a_joystick_grafica.zip s4a_joystick_grafica.zip]
 +
 
 +
== Mesura d'humitat i temperatura ==
 +
[https://wokwi.com/projects/322410731508073042 Mesura d'humitat i temperatura amb ESP32 al Wokwi]
 +
 
 +
[https://wokwi.com/projects/330040082126864980 Mesura de temperatura emprant un termistor de tipus NTC amb ESP32 al Wokwi]
 +
 
 +
= Conversió digital/analògica (DAC) =
 +
Seguint l'exemple [https://circuits4you.com/2018/12/31/esp32-dac-example/ ESP32 Arduino IDE code for DAC] s'ha fet aquest [https://wokwi.com/projects/330041526848586323 exemple de DAC per a ESP32 a Wokwi]. A la versió actual de Wokwi no es pot veure la il·luminació variant del led.
 +
 
 +
= Exercicis =
 +
== Graficació dels valors de temperatura i humitat ==
 +
Basant-vos amb l'exemple [https://wokwi.com/projects/322410731508073042 Mesura d'humitat i temperatura amb ESP32 al Wokwi], visualitzeu gràficament els valors de temperatura i humitat. Recordeu de modificar l'arxiu ''diagram.json''.
 +
 
 +
  Serial.print(data.temperature);
 +
  Serial.print(",");
 +
  Serial.print(data.humidity);
 +
  Serial.println("");
 +
 
 +
== Sistema de tres leds que ens indica la temperatura de comfort ==
 +
Seguint els consells de [https://www.azosensors.com/article.aspx?ArticleID=487 Determining Thermal Comfort Using a Humidity and Temperature Sensor] volem fer un sistema amb tres leds de colors. Basant-vos en l'exemple [https://wokwi.com/projects/330040082126864980 Mesura de temperatura emprant un termistor de tipus NTC amb ESP32 al Wokwi] i l'article anterior seguint la norma ISO7730 (i ignorant l'efecte de la humitat relativa), afegiu tres leds de colors (blau, verd i vermell). El led '''blau''' s'encendrà quan la temperatura estigui '''per sota de 20ºC''' (els altres dos leds hauran d'estar apagats). El led '''verd''' s'encendrà quan la temperatura estigui '''entre 20ºC i 26ºC''' (els altres dos leds hauran d'estar apagats). El led '''vermell''' s'encendrà quan la temperatura sigui '''superior a 26ºC''' (els altres dos leds hauran d'estar apagats).
 +
 
 +
= Comunicació amb components. Protocols I2C, SPI i UART =
 +
[https://www.binefa.cat/training/ceic/20220330/s4a/20181031_ceic_02.pdf Pàgines 49 a 79]
 +
 
 +
== I2C ==
 +
[https://wokwi.com/projects/329847579409908306 Escaneig d'adreces I2C] [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_06_i2cScanner Codis IoT-02_06_i2cScanner al GitHub]
 +
 
 +
[https://wokwi.com/projects/329848007382008404 Lectura de l'LDR a la pantalla OLED al Wokwi] [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_07_SSD1306 Codis IoT-02_07_SSD1306 al GitHub]
 +
 
 +
= MQTT =
 +
[https://www.binefa.cat/IoT/teoria/mqtt_00.pdf Introducció al protocol MQTT], el protocol més emprat a Internet de les Coses.
 +
 
 +
[http://formacio.things.cat/snap7/snap.html#open:../codisSnap/esp32_DT.xml esp32_DT.xml] funcionant amb [http://formacio.things.cat/xtra/wsMqtt02/ un exemple Qt amb WebAssembly]
 +
 
 +
[http://formacio.things.cat/snap7/snap.html#open:../codisSnap/peticioMqttSincrona.xml peticioMqttSincrona.xml] per a funcionar amb el simulador [https://wokwi.com/projects/328227183923298899 ESP32 amb MQTT rebent peticions síncrones del valor llegit a l'LDR]
 +
 
 +
= Simuladors en línia =
 +
[https://app.plcsimulator.online/ Un simulador ''ladder'' en línia]
 +
 
 +
[https://www.tinkercad.com/ Tinkercad]
 +
 
 +
[https://wokwi.com/ Wokwi]
 +
 
 +
[https://www.onlinegdb.com/ onlinegdb. Simulador de codi en diferents llenguatges de programació]
 +
 
 +
[https://design.infineon.com/tinaui/designer.php?c=62266a588651e&act=DCTR Simulador SPICE d'Infineon] (cal registrar-se)
 +
<!-- [https://upcommons.upc.edu/handle/2099.3/36355 Automatismos eléctricos programables] -->
 +
= Més documentació =
 +
[[Uso del NodeRED (2022) | Uso del NodeRED]]
 +
 
 +
[[Afegir l'ESP32 a l'IDE d'Arduino]]
 +
 
 +
[http://rebost.binefa.cat/iot/videos/01_Intro_placa_IoT-02_es.mkv Vídeo introductorio a la placa IoT-02] basada en ESP32
 +
 
 +
[http://rebost.binefa.cat/iot/videos/02_IDE_Arduino_ESP32_es.mkv Vídeo de instalación del IDE de Arduino para la placa IoT-02] basada en ESP32
 +
 
 +
[https://www.binefa.cat/doc/Dropbox/Public/oshw20161122/20161122_00.pdf Arduino i Raspberry Pi (1/4)],
 +
[https://www.binefa.cat/doc/Dropbox/Public/oshw20161124/20161124_01.pdf Arduino i Raspberry Pi (2/4)],
 +
[https://www.binefa.cat/doc/Dropbox/Public/oshw20161129/20161129_00.pdf Arduino i Raspberry Pi (3/4)] i
 +
[https://www.binefa.cat/doc/Dropbox/Public/oshw20161201/20161201_00.pdf Arduino i Raspberry Pi (4/4)]
 +
 
 +
[https://www.binefa.cat/training/ceic/20220427/ Repositori amb els materials del curset del 27 d'abril de 2022]

Revisió de 08:49, 22 feb 2023

Curs pràctic de programació d'electrònica "embedded low-cost" per a la IoT. Online en Directe a la pàgina del Centre de Formació i Ocupació del Col·legi d'Enginyers Industrials de Catalunya. Edició 27 i 28 d'abril de 2022

Microcontroladors d'escala petita

Una introducció a Arduino

Microcontroladors d'escala mitjana

Distribució de pins a l'ESP32-VROOM

Introducció a la placa IoT-02 (Formes de programar la placa IoT-02)

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

Exemples bàsics de sensòrica

Entrades digitals: Pàgines 7 a 9

Detecció de final de carrera

Control de leds amb botons al Wokwi IoT-02_03_inputs.ino al GitHub

Nivell de lluminositat

Lectura de l'LDR al Wokwi IoT-02_05_ldr.ino al GitHub

Mesura de distància per ultrasons

Mesura de distància per ultrasons amb ESP32 al Wokwi

Mesura d'inclinacions i acceleracions

Mesura d'inclinacions i acceleracions. Arduino Uno + MPU6050 amb Arduino Uno al Wokwi

Visualització gràfica d'inclinacions i acceleracions. Arduino Uno + MPU6050 amb Arduino Uno al Wokwi

Plotter bàsic

Plotter bàsic amb ESP32 al Wokwi

Recordant d'afegir una coma al principi per a mantenir el format json, hem afegit al final de l'arxiu diagram.json:

"serialMonitor": { "display": "plotter" }

Mesura d'humitat i temperatura

Mesura d'humitat i temperatura amb ESP32 al Wokwi

Mesura de temperatura emprant un termistor de tipus NTC amb ESP32 al Wokwi

Conversió digital/analògica (DAC)

Seguint l'exemple ESP32 Arduino IDE code for DAC s'ha fet aquest exemple de DAC per a ESP32 a Wokwi. A la versió actual de Wokwi no es pot veure la il·luminació variant del led.

Exercicis

Graficació dels valors de temperatura i humitat

Basant-vos amb l'exemple Mesura d'humitat i temperatura amb ESP32 al Wokwi, visualitzeu gràficament els valors de temperatura i humitat. Recordeu de modificar l'arxiu diagram.json.

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

Sistema de tres leds que ens indica la temperatura de comfort

Seguint els consells de Determining Thermal Comfort Using a Humidity and Temperature Sensor volem fer un sistema amb tres leds de colors. Basant-vos en l'exemple Mesura de temperatura emprant un termistor de tipus NTC amb ESP32 al Wokwi i l'article anterior seguint la norma ISO7730 (i ignorant l'efecte de la humitat relativa), afegiu tres leds de colors (blau, verd i vermell). El led blau s'encendrà quan la temperatura estigui per sota de 20ºC (els altres dos leds hauran d'estar apagats). El led verd s'encendrà quan la temperatura estigui entre 20ºC i 26ºC (els altres dos leds hauran d'estar apagats). El led vermell s'encendrà quan la temperatura sigui superior a 26ºC (els altres dos leds hauran d'estar apagats).

Comunicació amb components. Protocols I2C, SPI i UART

Pàgines 49 a 79

I2C

Escaneig d'adreces I2C Codis IoT-02_06_i2cScanner al GitHub

Lectura de l'LDR a la pantalla OLED al Wokwi Codis IoT-02_07_SSD1306 al GitHub

MQTT

Introducció al protocol MQTT, el protocol més emprat a Internet de les Coses.

esp32_DT.xml funcionant amb un exemple Qt amb WebAssembly

peticioMqttSincrona.xml per a funcionar amb el simulador ESP32 amb MQTT rebent peticions síncrones del valor llegit a l'LDR

Simuladors en línia

Un simulador ladder en línia

Tinkercad

Wokwi

onlinegdb. Simulador de codi en diferents llenguatges de programació

Simulador SPICE d'Infineon (cal registrar-se)

Més documentació

Uso del NodeRED

Afegir l'ESP32 a l'IDE d'Arduino

Vídeo introductorio a la placa IoT-02 basada en ESP32

Vídeo de instalación del IDE de Arduino para la placa IoT-02 basada en ESP32

Arduino i Raspberry Pi (1/4), Arduino i Raspberry Pi (2/4), Arduino i Raspberry Pi (3/4) i Arduino i Raspberry Pi (4/4)

Repositori amb els materials del curset del 27 d'abril de 2022