Curs pràctic de programació d'electrònica encastada de baix cost per a la Internet de les Coses. Edició 22 i 23 de febrer de 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ó 22 i 23 de febrer de 2023
Contingut
- 1 Microcontroladors d'escala petita
- 2 Microcontroladors d'escala mitjana
- 3 Exemples bàsics d'actuadors
- 4 Exemples bàsics de sensòrica
- 5 Conversió digital/analògica (DAC)
- 6 Exercicis
- 7 Comunicació amb components. Protocols I2C, SPI i UART
- 8 MQTT
- 9 Ciberseguretat
- 10 Exemples avançats
- 11 Simuladors en línia
- 12 Més documentació
Microcontroladors d'escala petita
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
Control de 4 leds amb ESP32
Control de quatre leds al Wokwi IoT-02_01_leds.ino al GitHub
Control d'un relé
Set / Reset amb un parell de relés sense microcontrolador simulat a Wokwi
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
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" }
- Exemple amb dispositiu físic: s4a_joystick_grafica.zip
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
Sensors i actuadors en entorns industrials
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
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
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.
Demostració d'us d'MQTT emprant Snap! v8
esp32_DT.xml 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
Protocol HTTP. Noció d'URL. Bridge HTTP-MQTT. Dashboards amb Node-RED. Control de dispositius amb el telèfon mòbil
Tauler de control (dashboard) amb Node-RED
Pont (bridge) HTTP --> MQTT (Codi del flux Node-RED del pont)
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
Exemples avançats
Visualització amb Node-RED
Accés a instàncies d'un NodeRED
Instàncies actives durant la durada del curs:
http://vps656540.ovh.net:188X
Ara repartirem el número X entre els assistents. 1 <= X <= 9
Usuari: curs2202 / Contrasenya: La diem durant la presentació
Emmagatzemament de dades amb Influxdb
Pàgina de l'empresa desenvolupadora d'InfluxDB
Visualització amb Grafana
Captures de configuració emprant NodeRed, InfluxDB i Grafana
Exemple d'ús amb Grafana (usuari/contrasenya: convidat/convidat)
Sistemes complets
Ús de les dades generades pels sensors LoRaWAN i arquitectura del sistema. Rubí 2020
Simuladors en línia
onlinegdb. Simulador de codi en diferents llenguatges de programació
Simulador SPICE d'Infineon (cal registrar-se)
Més documentació
Biblioteca MQTT4Snap! al GitHub desenvolupada per en Xavier Pi.
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