Diferència entre revisions de la pàgina «Curs pràctic de programació IoT amb Intel·ligència Artificial. Online en Directe. Edició 7 i 8 de febrer de 2024»

De binefa.com
Salta a la navegació Salta a la cerca
 
(Hi ha 15 revisions intermèdies del mateix usuari que no es mostren)
Línia 8: Línia 8:
 
== Arquitectures client-servidor i orientades a esdeveniments (PubSub) ==
 
== Arquitectures client-servidor i orientades a esdeveniments (PubSub) ==
 
== Tipus d'embedded systems: Escala petita (Arduino). Escala mitjana (ESP32). Escala sofisticada (Raspberry Pi) ==
 
== Tipus d'embedded systems: Escala petita (Arduino). Escala mitjana (ESP32). Escala sofisticada (Raspberry Pi) ==
 +
=== Microcontroladors d'escala petita ===
 +
[https://www.binefa.cat/training/ceic/20230223/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]])
 +
 
== Arquitectura superloop setup() - loop(). Introducció bàsica al Llenguatge C ==
 
== Arquitectura superloop setup() - loop(). Introducció bàsica al Llenguatge C ==
 
== Entrades i sortides analògiques i digitals ==
 
== Entrades i sortides analògiques i digitals ==
 +
=== Entrades analògiques i digitals a 12V i 24V ===
 +
[https://github.com/iotvertebrae/modules/blob/main/hardware/schematics/digitalInputRib.pdf Esquema per a llegir entrades de 12 i 24 volts convertint-les a nivells de 3,3 volts]
 +
 +
=== Control de dispositius 0-10V. Circuit. Conversió digital-analògica ===
 +
[https://github.com/iotvertebrae/modules/blob/main/hardware/schematics/adcRib.pdf Esquema per a llegir entrades de -10 a +10 volts convertint-ho a un ventall entre 0 i 3,3 volts]
 +
 
== Noció de xarxa neuronal. TensorFlow ==
 
== Noció de xarxa neuronal. TensorFlow ==
 +
[https://www.youtube.com/watch?v=tPYj3fFJGjk TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial] (Videotutorial de 7 hores)
  
 
= Exemples bàsics d'actuadors. Circuits i programació =
 
= Exemples bàsics d'actuadors. Circuits i programació =
 +
[https://wokwi.com/arduino/projects Carpeta de projectes a Wokwi]
 
== Control d'un led (blink), d'un relé i d'un servomotor ==
 
== Control d'un led (blink), d'un relé i d'un servomotor ==
[https://wokwi.com/arduino/projects Carpeta de projectes a Wokwi]
 
 
 
=== Control de 4 leds amb ESP32 ===
 
=== 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 65: Línia 78:
  
 
=== Mesura d'inclinacions i acceleracions ===
 
=== 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/358387797665328129 Mesura d'inclinacions i acceleracions. ESP32 + MPU6050 al Wokwi]
 +
 
 +
[https://wokwi.com/projects/305936654686749250 Mesura d'inclinacions i acceleracions. Arduino Uno + MPU6050 al Wokwi]
 +
 
 +
[https://wokwi.com/projects/305937156771152449 Visualització gràfica d'inclinacions i acceleracions. Arduino Uno + MPU6050 al Wokwi]
 +
 
 +
== Classificació de gestos, imatges i sons emprant xarxes neuronals ==
 +
=== Gestos ===
 +
[[Classificació de gestos emprant la placa IoT-02]]
 +
 
 +
[https://wokwi.com/projects/388251401392311297 Recol·lector de dades a Wokwi]
 +
 
 +
[https://wokwi.com/projects/388254554291783681 Classificador de dades a Wokwi]
 +
 
 +
=== Imatges ===
 +
[https://www.instructables.com/ESP32-CAM-Person-Detection-Expreiment-With-TensorF/ ESP32-CAM Person Detection Experiment With TensorFlow Lite]
 +
 
 +
== 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/snap8/snap.html#open:http://formacio.things.cat/codisSnap/demoMqtt00.xml Demostració d'us d'MQTT emprant Snap! v8]
 +
 
 +
[http://formacio.things.cat/snap8/snap.html#open:../codisSnap/esp32_DT_8.0.0.xml codi amb Snap! v8] funcionant amb [http://formacio.things.cat/xtra/wsMqtt02/ un exemple Qt amb WebAssembly]
 +
 
 +
[http://formacio.things.cat/snap7/snap.html#open:../codisSnap/esp32_DT.xml codi amb Snap! v7] funcionant amb [http://formacio.things.cat/xtra/wsMqtt02/ un exemple Qt amb WebAssembly]
  
[https://wokwi.com/projects/305937156771152449 Visualització gràfica d'inclinacions i acceleracions. Arduino Uno + MPU6050 amb Arduino Uno al Wokwi]
+
[https://wokwi.com/projects/350955865540395602 ESP32 amb MicroPython emprant MQTT] funcionant amb [http://formacio.things.cat/xtra/wsMqtt02/ un exemple Qt amb WebAssembly]
 +
 
 +
[https://www.binefa.cat/training/ceic/20230223/iot02/IoT-02_mqtt_coeic_20221214_b.zip Microprogramari emprant MQTT a la placa IoT-02]
 +
== HTTP ==
 +
[http://formacio.things.cat:2222/ui/ Tauler de control (''dashboard'') amb Node-RED]
 +
 
 +
[https://www.binefa.cat/training/ceic/20230223/pontHttpMqtt/pontHttpMqtt.png Pont (''bridge'') HTTP --> MQTT] ([https://www.binefa.cat/training/ceic/20230223/pontHttpMqtt/pontHttpMqtt.json Codi del flux Node-RED del pont])
  
== Classificació d'imatges i sons amb xarxes neuronals ==
 
== MQTT, HTTP ==
 
 
== Bots de Telegram (xarxes socials) ==
 
== Bots de Telegram (xarxes socials) ==
 +
[https://wiki.binefa.cat/index.php?title=Bot_de_Telegram Bot de Telegram]
 +
 
== Cloud computing vs Edge Computing ==
 
== Cloud computing vs Edge Computing ==
 
== Introducció a la visualització de dades amb Grafana. Sensors i actuadors en entorns industrials ==
 
== Introducció a la visualització de dades amb Grafana. Sensors i actuadors en entorns industrials ==
 +
=== Visualització amb Grafana ===
 +
[https://www.binefa.cat/training/ceic/20230223/grafanaInfluxDB/ Captures de configuració emprant NodeRed, InfluxDB i Grafana]
 +
 +
[https://grafana.com/ Pàgina de Grafana]
 +
 +
[http://cleanhub.siarq.com:3000/ Exemple d'ús amb Grafana] (usuari/contrasenya: convidat/convidat)
  
 
== Entrades/sortides analògiques (+-10V) i digitals (12V i 24V) ==
 
== Entrades/sortides analògiques (+-10V) i digitals (12V i 24V) ==
 +
=== Entrades analògiques i digitals a 12V i 24V ===
 +
[https://github.com/iotvertebrae/modules/blob/main/hardware/schematics/digitalInputRib.pdf Esquema per a llegir entrades de 12 i 24 volts convertint-les a nivells de 3,3 volts]
 +
 +
=== Control de dispositius 0-10V. Circuit. Conversió digital-analògica ===
 +
[https://github.com/iotvertebrae/modules/blob/main/hardware/schematics/adcRib.pdf Esquema per a llegir entrades de -10 a +10 volts convertint-ho a un ventall entre 0 i 3,3 volts]
  
 
= Ciberseguretat =
 
= Ciberseguretat =
 
== Certificats digitals ==
 
== Certificats digitals ==
== MQTTS i HTTPS ==
+
[https://www.fortinet.com/resources/cyberglossary/digital-certificates What Is a Digital Certificate?] (by fortinet.com)
 +
 
 +
[https://www.digicert.com/tls-ssl/digital-certificates A certificate for every connected thing] (by digicert.com)
 +
 
 +
== Comunicacions segures amb MQTTS ==
 +
[https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_mqtts_freeRTOS_json_12 Codi per a ESP32 emprant certificat digital per a MQTTS]
 +
 
 +
[http://www.steves-internet-guide.com/creating-and-using-client-certificates-with-mqtt-and-mosquitto/ Creating and Using Client Certificates with MQTT and Mosquitto]
 +
 
 +
== Comunicacions segures amb HTTPS ==
 +
[http://extensions.snap.berkeley.edu/snap/snap.html#open:http://raw.githubusercontent.com/pixavier/mqtt4snap/master/examples/Demo.xml Demostració d'ús d'MQTT sobre sòcols web no segurs i pàgina HTTP no segura]
 +
 
 +
[https://snap.berkeley.edu/snap/snap.html#open:https://raw.githubusercontent.com/pixavier/mqtt4snap/master/examples/Demo.xml Demostració d'ús d'MQTTS sobre sòcols web segurs i pàgina HTTPS segura]

Revisió de 11:29, 29 gen 2024

Curs pràctic de programació IoT amb Intel·ligència Artificial. Online en Directe a la pàgina del Centre de Formació i Ocupació del Col·legi d'Enginyers Industrials de Catalunya. Edició 7 i 8 de febrer de 2024

Moodle del curs

Contingut

IoT i els sistemes encastats (embedded systems)

Llenguatges low-code de blocs (Snap!). Repàs de les nocions de variable, bucle, rutina (bloc)

Llenguatges low-code de fluxos (Node-RED)

Arquitectures client-servidor i orientades a esdeveniments (PubSub)

Tipus d'embedded systems: Escala petita (Arduino). Escala mitjana (ESP32). Escala sofisticada (Raspberry Pi)

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)

Arquitectura superloop setup() - loop(). Introducció bàsica al Llenguatge C

Entrades i sortides analògiques i digitals

Entrades analògiques i digitals a 12V i 24V

Esquema per a llegir entrades de 12 i 24 volts convertint-les a nivells de 3,3 volts

Control de dispositius 0-10V. Circuit. Conversió digital-analògica

Esquema per a llegir entrades de -10 a +10 volts convertint-ho a un ventall entre 0 i 3,3 volts

Noció de xarxa neuronal. TensorFlow

TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial (Videotutorial de 7 hores)

Exemples bàsics d'actuadors. Circuits i programació

Carpeta de projectes a Wokwi

Control d'un led (blink), d'un relé i d'un servomotor

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. Circuits i programació

Detecció de finals de carrera i de llindars i nivells de lluminositat

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àncies, d'inclinacions i acceleracions i d'humitat i temperatura

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. ESP32 + MPU6050 al Wokwi

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

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

Classificació de gestos, imatges i sons emprant xarxes neuronals

Gestos

Classificació de gestos emprant la placa IoT-02

Recol·lector de dades a Wokwi

Classificador de dades a Wokwi

Imatges

ESP32-CAM Person Detection Experiment With TensorFlow Lite

MQTT

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

Demostració d'us d'MQTT emprant Snap! v8

codi amb Snap! v8 funcionant amb un exemple Qt amb WebAssembly

codi amb Snap! v7 funcionant amb un exemple Qt amb WebAssembly

ESP32 amb MicroPython emprant MQTT funcionant amb un exemple Qt amb WebAssembly

Microprogramari emprant MQTT a la placa IoT-02

HTTP

Tauler de control (dashboard) amb Node-RED

Pont (bridge) HTTP --> MQTT (Codi del flux Node-RED del pont)

Bots de Telegram (xarxes socials)

Bot de Telegram

Cloud computing vs Edge Computing

Introducció a la visualització de dades amb Grafana. Sensors i actuadors en entorns industrials

Visualització amb Grafana

Captures de configuració emprant NodeRed, InfluxDB i Grafana

Pàgina de Grafana

Exemple d'ús amb Grafana (usuari/contrasenya: convidat/convidat)

Entrades/sortides analògiques (+-10V) i digitals (12V i 24V)

Entrades analògiques i digitals a 12V i 24V

Esquema per a llegir entrades de 12 i 24 volts convertint-les a nivells de 3,3 volts

Control de dispositius 0-10V. Circuit. Conversió digital-analògica

Esquema per a llegir entrades de -10 a +10 volts convertint-ho a un ventall entre 0 i 3,3 volts

Ciberseguretat

Certificats digitals

What Is a Digital Certificate? (by fortinet.com)

A certificate for every connected thing (by digicert.com)

Comunicacions segures amb MQTTS

Codi per a ESP32 emprant certificat digital per a MQTTS

Creating and Using Client Certificates with MQTT and Mosquitto

Comunicacions segures amb HTTPS

Demostració d'ús d'MQTT sobre sòcols web no segurs i pàgina HTTP no segura

Demostració d'ús d'MQTTS sobre sòcols web segurs i pàgina HTTPS segura