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»
(Hi ha 26 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 | ||
+ | |||
+ | = Microcontroladors d'escala petita = | ||
+ | [https://www.binefa.cat/training/ceic/20220330/s4a/20181031_ceic_02.pdf Una introducció a Arduino] | ||
= Microcontroladors d'escala mitjana = | = 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://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 = | = Exemples bàsics d'actuadors = | ||
[https://wokwi.com/arduino/projects Carpeta de projectes a Wokwi] | [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] | [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] | ||
Línia 50: | Línia 56: | ||
== Nivell de lluminositat == | == 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] | [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 = | = Comunicació amb components. Protocols I2C, SPI i UART = | ||
Línia 58: | Línia 100: | ||
[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] | [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 = | = Simuladors en línia = | ||
Línia 67: | Línia 116: | ||
[https://www.onlinegdb.com/ onlinegdb. Simulador de codi en diferents llenguatges de programació] | [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
Contingut
Microcontroladors d'escala petita[modifica]
Microcontroladors d'escala mitjana[modifica]
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[modifica]
Control de 4 leds amb ESP32[modifica]
Control de quatre leds al Wokwi IoT-02_01_leds.ino al GitHub
Control d'un relé[modifica]
Set / Reset amb un parell de relés sense microcontrolador simulat a Wokwi
Circuit d'enclavament al TinkerCad
Arduino Uno[modifica]
Control d'un relé a Wokwi emprant Arduino Uno
ESP32[modifica]
Control d'un relé a Wokwi emprant ESP32
Servomotors[modifica]
Arduino Uno[modifica]
Potenciòmetre controlant la posició d'un servo emprant Arduino Uno
Escombrat de posicions d'un servo emprant Arduino Uno
Arduino Mega[modifica]
Exemple de control de 31 servos
ESP32[modifica]
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[modifica]
Entrades digitals: Pàgines 7 a 9
Detecció de final de carrera[modifica]
Control de leds amb botons al Wokwi IoT-02_03_inputs.ino al GitHub
Nivell de lluminositat[modifica]
Lectura de l'LDR al Wokwi IoT-02_05_ldr.ino al GitHub
Mesura de distància per ultrasons[modifica]
Mesura de distància per ultrasons amb ESP32 al Wokwi
Mesura d'inclinacions i acceleracions[modifica]
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[modifica]
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: s4a_joystick_grafica.zip
Mesura d'humitat i temperatura[modifica]
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)[modifica]
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[modifica]
Graficació dels valors de temperatura i humitat[modifica]
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[modifica]
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[modifica]
I2C[modifica]
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[modifica]
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[modifica]
onlinegdb. Simulador de codi en diferents llenguatges de programació
Simulador SPICE d'Infineon (cal registrar-se)
Més documentació[modifica]
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