Recull de pràctiques de 2n de DAM. Curs 2025-2026
Contingut
A06 - POO amb C++ i Qt
A06.00
Instal·lació de la versió educativa del QtCreator
A06.01 - Ginys encastats
- a0601a. Feu una interfície gràfica (GUI) amb dos botons (+ i -) i una etiqueta numèrica.
- a0601b. Feu una interfície gràfica (GUI) amb una barra lliscant (slider) i un giny LCD de dos números. La barra lliscant controla l'LCD.
- a0601c. Feu una interfície gràfica (GUI) que integri els dos projectes anteriors. La botonera també controla la barra lliscant i l'LCD. La barra lliscant també controla el valor de l'etiqueta numèrica.
Exercici A06.01. (Heu de desar a la carpeta A06 un document 2526-DAM-A06.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A06.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
A06.02 - Interfícies gràfiques
Exercici A06.02. (Heu de desar a la carpeta un document 2526-DAM-A06.02-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A06.02-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
A07 - Introducció a la placa IoT-02, Wokwi i protocols de comunicació
A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed
Exercici A07.01 (Heu de desar a la carpeta A07 un document 2526-DAM-A07.01-1rCognom2nCognomNom.pdf amb l'explicació del procés de resolució de la pràctica, incloent-hi captures de pantalla i fotografies.
A07.01.0
Explicació de com connectar la placa IoT-02, mitjançant MQTT, a Node-RED i a Snap!
A07.01.1
Feu un codi emprant el panell de control (Dashboard) de NodeRed que surtin quatre interruptors que controlin els quatre leds de la placa IoT-02, mitjançant comunicació MQTT.
A07.01.2
Feu un codi emprant el panell de control (Dashboard) de NodeRed que mostri l'estat dels tres botons de la placa IoT-02, mitjançant comunicació MQTT.
A07.01.3
Agrupeu a una sola pestanya A07.01.1 i A07.01.2.
A07.02 - Punt multicolor al NodeRED i variables de flux
Feu una visualització d'un punt que representa un led multicolor. A la placa IoT-02:
- Quan el botó IO0 sigui premut incorpora el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó IO0 no sigui premut traieu el color vermell al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 sigui premut incorpora el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I34 no sigui premut traieu el color verd al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 sigui premut incorpora el color blau al punt multicolor representat al panell de control del NodeRED
- Quan el botó I35 no sigui premut traieu el color blau al punt multicolor representat al panell de control del NodeRED
A07.03 - Visualització amb un giny rellotge del nivell de llum
Feu una visualització d'un giny rellotge que indiqui el nivell de llum a la LDR de la placa IoT-02.
A12 - Qt
A12.01 - ginyMqtt amb CMake
L'objectiu d'aquest exercici és fer una aplicació en Qt capaç de comunicar-se bidireccionalment amb la Placa IoT-02. El funcionament és exactament igual que a l'exercici anterior que heu fet emprant qmake, en aquest heu de fer servir CMake.
Suggeriment d'arxiu de projecte emprant CMake:
Afegiu Network i Mqtt a find_package():
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network Mqtt)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network Mqtt)
Afegiu Qt${QT_VERSION_MAJOR}::Network i Qt${QT_VERSION_MAJOR}::Mqtt a target_link_libraries():
target_link_libraries(ginyMqtt04_cmake PUBLIC Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network Qt${QT_VERSION_MAJOR}::Mqtt)
Exercici A12.01 (Heu de desar al Drive el document 2526-DAM-A12.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2526-DAM-A12.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el CMakeLists.txt.user).
A12.02 Mqtt_IoT02
Desenvolupeu un projecte en Qt, capaç d'interaccionar amb la Placa IoT-02, amb aquest aspecte:
- A12.02-1)
Prenent com a base els arxius 00_botonsToggle05.zip i 00_botonsToggle06.zip del recull, desenvolupeu el projecte 02_indicadorLed_00 per a que tingui aquest comportament:
- A12.02-2)
Basant-vos en 02_indicadorLed_00 i 01_json_00.zip del recull, desenvolupeu el projecte 03_indicadorLed_01 per a que tingui aquest aspecte (els valors dels led R, G i B donen valors 0 i 1. Els valors del led W són true i false):
- A12.02-3)
Basant-vos en 04_indicadorBotons00.zip del recull, desenvolupeu el projecte 05_indicadorBotons_01 per a que tingui aquest aspecte:
- A12.02-4)
Basant-vos en 03_indicadorLed_01, desenvolupeu 03_indicadorLed_01_mqtt que controli els quatre leds de la placa IoT-02.
Mqtt_IoT02::Mqtt_IoT02(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Mqtt_IoT02)
{
ui->setupUi(this);
mqttBasic = new MqttBasic;
indicadorLed = new IndicadorLed;
indicadorBotons = new IndicadorGrupBotonsEt;
ui->hlAmunt->addWidget(mqttBasic);
ui->hlCentre->addWidget(indicadorLed);
ui->hlAvall->addWidget(indicadorBotons);
connect(mqttBasic,SIGNAL(vSignalMqttConnected()),this,SLOT(vMqttConnectat()));
connect(mqttBasic,SIGNAL(vSignalMqttDisconnected()),this,SLOT(vMqttDesconnectat()));
connect(indicadorLed,SIGNAL(vTrametJsonLeds(QString)),this,SLOT(vTrametJsonLeds(QString)));
indicadorBotons->vSetJsonText("");
//showMaximized();
}
- A12.02-5)
Basant-vos en 05_indicadorBotons_01, desenvolupeu 05_indicadorBotons_01_mqtt que llegeixi els tres botons de la placa IoT-02.
- A12.02-6)
Feu l'integració per a que l'aspecte sigui semblant a la captura d'inici de l'activitat A12.02. Haureu d'afegir un QTimer per anar demanant periòdicament el JSON que conté el valor de l'LDR.








