DAM 2022-2023
Quan tingueu les credencials d'accés a la NET heu de compartir una carpeta amb aquest nom: 2223-DAM-1rCognom2nCognomNom (Per exemple, si el vostre nom és Xavier López Pujol --> 2223-DAM-LopezPujolXavier). Heu de compartir-la amb el professor transversal dels projectes globals i amb mi. A aquest enllaç podreu veure si ja hi sou a la llista:
Carpetes compartides de 2n de DAM. Curs 2022-2023
Contingut
- 1 Algunes classes
- 1.1 20221024 (3h)
- 1.2 20221021 (2h)
- 1.3 20221020 (1h) Menús a QMainWindow
- 1.4 20221017 (3h)
- 1.5 20221014 (2h) A06.02, A06.03, A07.01 i A07.02
- 1.6 20221013 (1h) A07.02
- 1.7 20221010 (3h) A06.02, A07.01 i A06.03
- 1.8 20221007 (2h) A06.01
- 1.9 20221006 (1h) A06.01
- 1.10 20221003 (2h) A06.01
- 1.11 20220930 (2h) A00
- 1.12 20220929 (1h)
- 1.13 20220923 (2h) A05
- 1.14 20220922 (1h)
- 1.15 20220919 (3h)
- 1.16 20220916 (2h) A03
- 1.17 20220915 (1h)
- 1.18 20220912 (3h)
- 2 Repositori de codis fet a classe durant el curs
- 3 Documentació
Algunes classes
Teleconferència provisional per a compartir pantalla i confinats
20221024 (3h)
Recull d'avui usuari: dam | contrasenya: dam2223
- Exercici A06.03 (Heu de desar a la carpeta A06 un document 2223-DAM-A06.03-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2223-DAM-A06.02-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
20221021 (2h)
Recull d'avui usuari: dam | contrasenya: dam2223
20221020 (1h) Menús a QMainWindow
Recull d'avui usuari: dam | contrasenya: dam2223
20221017 (3h)
- Dubtes
- Finalització de les subactivitats pendents
20221014 (2h) A06.02, A06.03, A07.01 i A07.02
Recull d'avui usuari: dam | contrasenya: dam2223
- Dubtes
- Acabem les subactivitats pendents (A06.02, A06.03, A07.01 i/o A07.02).
20221013 (1h) A07.02
Recull d'avui usuari: dam | contrasenya: dam2223
- Feu-vos un usuari a Wokwi. Us podeu autenticar fent servir el vostre usuari a l'Escola o el vostre usuari personal a GMail.
Feu-vos una còpia a la vostra zona a Wokwi d'aquest bessó digital d'un ESP32, implementat en micropython, comunicant mitjançant MQTT. Canvieu la MAC del bessó digital per la MAC de la vostra placa IoT-02.
- Exercici A07.02 (Heu de desar a la carpeta A07 un document 2223-DAM-A07.02-1rCognom2nCognomNom.pdf amb l'explicació de com heu modificat la MAC (escrivint-hi la de la vostra placa IoT-02) del bessó digital copiat a la vostra zona de Wokwi. Feu el document fent servir com a controladors l'Snap!, NodeRED, i el codi amb QtMqtt ginyMqtt04. I com a dispositius la vostra còpia modificada del bessó digital i la placa IoT-02 per a provar la bidireccionalitat de la comunicació MQTT amb el botó i el led.
- Explicació dels codis ginyMqtt00 fins a ginyMqtt04, que fan servir ginys QWidget i QtMqtt.
20221010 (3h) A06.02, A07.01 i A06.03
Recull d'avui usuari: dam | contrasenya: dam2223
- Exercici A06.02 (Heu de desar a la carpeta A06 un document 2223-DAM-A06.02-1rCognom2nCognomNom.pdf amb l'explicació del procés per a instal·lar QtMqtt al vostre sistema. Verifiqueu que us funciona fent servir el codi de la carpeta de l'exercici A06.02
- Si feu servir Windows i no teniu el llenguatge perl instal·lat, instal·leu perl
ecat@iot-ecat:~/Qt/6.2.4/gcc_64/lib$ git clone git://code.qt.io/qt/qtmqtt.git ecat@iot-ecat:~/Qt/6.2.4/gcc_64/lib$ cd qtmqtt/ ecat@iot-ecat:~/Qt/6.2.4/gcc_64/lib/qtmqtt$ git checkout 6.1 (malgrat tingueu la 6.2.4) ecat@iot-ecat:~/Qt/6.2.4/gcc_64/lib/qtmqtt$ rm -r examples/
Mitjançant el Qt Creator obriu el projecte /home/ecat/Qt/6.2.4/gcc_64/lib/qtmqtt/qtmqtt.pro. Aneu al menú i seleccioneu Build / Run qmake
ecat@iot-ecat:~/Qt/6.2.4/gcc_64/lib/qtmqtt$ make ecat@iot-ecat:~/Qt/6.2.4/gcc_64/lib/qtmqtt$ sudo make install
Descàrrega del C++ 17 per Windows.
Compilació i instal·lació des de Windows, un cop instal·lat C++ 17 (i la ruta del PATH havent afegit C:\MinGW\bin).
mingw32-make.exe mingw32-make.exe install
- Exercici A07.01 (Heu de desar a la carpeta A07 un document 2223-DAM-A07.01-1rCognom2nCognomNom.pdf amb l'explicació del procés de fer servir la modificació de simpleclient, anomenant-la simpleclientUsrPwd, incorporant usuari i contrasenya. Heu de comunicar la placa IoT-02 de forma bidireccional amb simpleclientUsrPwd.
void MainWindow::on_buttonConnect_clicked() { if (m_client->state() == QMqttClient::Disconnected) { ui->lineEditHost->setEnabled(false); ui->spinBoxPort->setEnabled(false); ui->buttonConnect->setText(tr("Disconnect")); ui->leUser->setEnabled(false); ui->lePwd->setEnabled(false); m_client->setUsername(ui->leUser->text()); m_client->setPassword(ui->lePwd->text()); m_client->connectToHost(); } else { ui->lineEditHost->setEnabled(true); ui->spinBoxPort->setEnabled(true); ui->leUser->setEnabled(true); ui->lePwd->setEnabled(true); ui->buttonConnect->setText(tr("Connect")); m_client->disconnectFromHost(); } }
- Exercici A06.03 (Heu de desar a la carpeta A06 un document 2223-DAM-A06.03-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2223-DAM-A06.02-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
20221007 (2h) A06.01
Recull d'avui usuari: dam | contrasenya: dam2223
20221006 (1h) A06.01
Recull d'avui usuari: dam | contrasenya: dam2223
Exercici A06.01 (Heu de desar a la carpeta A06 un document 2223-DAM-A06.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2223-DAM-A06.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
20221003 (2h) A06.01
Recull d'avui usuari: dam | contrasenya: dam2223
Connexió entre ginys encastats (Evolució de l'exercici del darrer dia)
Exercici A06.01 (Heu de desar a la carpeta A06 un document 2223-DAM-A06.01-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2223-DAM-A06.01-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user).
qtMqtt
Feu un git clone i especifiqueu la versió amb un git checkout 6.0. Després:
git clone https://code.qt.io/cgit/qt/qtmqtt.git cd qmqtt git checkout 6.1 (Canvieu 6.1 per la vostra versió de Qt) mkdir build cd build qmake -r .. make sudo make install
Instal·lació a Windows
- Si no teniu el llenguatge perl instal·lat, instal·leu perl
- Obriu el CMD amb les variables d'entorn de les Qt6
git clone git://code.qt.io/qt/qtmqtt.git cd qmqtt git checkout 6.1 mkdir build cd build qmake -r .. mingw32-make mingw32-make install
Instal·lació de QtMqtt per Android
Malgrat que ja us funcioni la biblioteca QtMqtt en programes d'escriptori, heu de fer la compilació de la biblioteca QtMqtt per a la versió de Qt/QML que feu servir per a poder executar programes que duguin aquesta biblioteca a Android.
Hi ha diversos suggeriments de com fer-ho. Després de diversos intents, aquest és el sistema que a mi m'ha funcionat:
Cerqueu el directori lib de la vostra distribució Qt per a Android x86:
jordi@ecat-XPS13:~$ /home/jordi/Qt/6.0.0/android_x86/bin/qmake -query QT_INSTALL_LIBS /home/jordi/Qt/6.0.0/android_x86/lib
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~$ /home/ecat/Qt/6.0.0/android_armv7/bin/qmake -query QT_INSTALL_LIBS /home/ecat/Qt/6.0.0/android_armv7/lib
Aneu a la carpeta que ens retorna l'ordre anterior (Android x86):
jordi@ecat-XPS13:~$ cd /home/jordi/Qt/6.0.0/android_x86/lib
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~$ cd /home/ecat/Qt/6.0.0/android_armv7/lib
I feu el procés d'instal·lació (Android x86):
jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ git clone git://code.qt.io/qt/qtmqtt.git jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ cd qtmqtt/ jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ git checkout 6.0 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ rm -r examples/
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ git clone git://code.qt.io/qt/qtmqtt.git ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ cd qtmqtt/ ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ git checkout 6.0 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ rm -r examples/
Per a Android x86, mitjançant el Qt Creator obriu el projecte /home/jordi/Qt/6.0.0/android_x86/lib/qtmqtt/qtmqtt.pro. Aneu al menú i seleccioneu Build / Run qmake
Per a Android ARM, mitjançant el Qt Creator obriu el projecte /home/ecat/Qt/6.0.0/android_armv7/lib/qtmqtt/qtmqtt.pro. Aneu al menú i seleccioneu Build / Run qmake
Torneu al terminal d'abans i feu (Android x86):
jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ make jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ sudo make install
o, per al dispositiu físic Android amb tecnologia Android ARM:
ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ make ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ sudo make install
Copieu, fora de la ruta de les Qt, els projectes d'exemple quickpublication i quicksubscription. Obriu els dos projectes per a que puguin ser executats des de l'escriptori i des del mòbil (emulat o no). Per a verificar llur funcionament, podeu executar un projecte al dispositiu mòbil i l'altre a l'escriptori.
20220930 (2h) A00
- Dubtes
- Programació orientada a objectes en C++. Integració a les Qt. (Codis al recull del 19 de setembre)
- Canvi de la forma del cursor per frames
- Una calculadora que suma, emprant Qt
- A la segona hora es faran activitats relacionades amb el professor transversal del projecte global.
Dins de la carpeta compartida feu una subcarpeta amb el nom activitats. I a dins de la subcarpeta A00. Deseu a la subcarpeta A00 l'activitat feta amb el professor transversal en format .odt i .pdf
20220929 (1h)
- Dubtes
- Programació orientada a objectes en C++. Integració a les Qt. (Codis al recull del 19 de setembre)
- Canvi de la forma del cursor per frames
- Una aplicació, emprant Qt, amb dos botons ( + i -) i una etiqueta que mostra un número. Amb el botó + s'incrementa el valor del número de l'etiqueta i amb el botó - es decrementa.
20220923 (2h) A05
- Dubtes
- Verifiqueu la connectivitat amb el protocol MQTT de la placa IoT-02 emprant Snap! i NodeRED.
- Programació orientada a objectes en C++. Integració a les Qt.
- A la segona hora es farà l'activitat 5 relacionada amb el professor transversal del projecte global.
Feu la subcarpeta A05 dins de la subcarpeta activitats de la carpeta compartida. Deseu a la subcarpeta A05 l'activitat feta amb el professor transversal en format .odt i .pdf
20220922 (1h)
Recull d'avui usuari: dam | contrasenya: dam2223
- Dubtes del darrer dia
- Seguim amb les Qt
20220919 (3h)
Recull d'avui usuari: dam | contrasenya: dam2223
- Dubtes de la setmana passada
- Connexió de la placa IoT-02 a NodeRED mitjançant MQTT
formacio.things.cat:9001 ecat / clotClot
- Programació orientada a objectes en C++. Integració a les Qt
20220916 (2h) A03
- Reviseu si teniu la vostra carpeta compartida enllaçada a carpetes compartides amb el número de la placa IoT-02 cedida fins a final de curs.
- Dubtes del dia anterior
- Programació orientada a objectes en C++. Integració a les Qt
- A la segona hora es faran activitats relacionades amb el professor transversal del projecte global.
Dins de la carpeta compartida feu una subcarpeta amb el nom activitats. I a dins de la subcarpeta A03. Deseu a la subcarpeta A03 l'activitat feta amb el professor transversal en format .odt i .pdf
20220915 (1h)
- Reviseu si teniu la vostra carpeta compartida enllaçada a: Carpetes compartides de 2n de DAM. Curs_2022-2023
- Porteu un cable o alimentador amb connector microUSB de tipus B. Haureu de dur-lo sempre que es facin pràctiques amb la placa IoT-02.
- Dubtes del dia anterior
- Repartiment de la placa IoT-02. El número de placa queda registrat a les carpetes compartides
20220912 (3h)
Recull del dia 20220912 usuari: dam | contrasenya: dam2223
Distribució de M07UF1 i M13 al curs 2022-2023
Distribució de M07UF1 i M13 al curs 2022-2023 de 2n de DAM
Qt
El Qt Creator serà l'IDE que farem servir per a desenvolupar el disseny d'aplicacions gràfiques d'usuari:
Aneu a la pàgina Qt for Open Source Development i cerqueu Download the Qt Online Installer. Baixeu-vos-ho i instal·leu-ho (us demana registrar-vos per a poder-ho instal·lar).
Paquets que manquen per a fer funcionar les Qt a l'Ubuntu:
sudo apt install libx11-xcb-dev libglu1-mesa-dev
IoT
- NodeRED
Instal·lació de Node.js Guia d'instal·lació de node i npm
Verificació:
node --version npm --version
Instal·lació i funcionament del NodeRed autònom
ecat@iot-ecat:~$ mkdir bin ecat@iot-ecat:~$ cd bin ecat@iot-ecat:~/bin$ sudo apt install unzip ecat@iot-ecat:~/bin$ mkdir nodered-ui ecat@iot-ecat:~/bin$ cd nodered-ui ecat@iot-ecat:~/bin/nodered-ui$ wget https://www.binefa.cat/IoT/nodeRed/node_red_ui.zip ecat@iot-ecat:~/bin/nodered-ui$ unzip node_red_ui.zip ecat@iot-ecat:~/bin/nodered-ui$ node node_modules/node-red/red.js --userDir node_modules/node-red/data --settings node_modules/node-red/settings.js -v --port 2222 --title elmeuTitol --safe flows_meuTitol.json
Si hi ha problemes de confiança amb el certificat al descarrega l'arxiu .zip, hi podeu afegir l'opció --no-check-certificate:
wget --no-check-certificate https://www.binefa.cat/IoT/nodeRed/node_red_ui.zip
Repositori de codis fet a classe durant el curs
Codis fets a les classes de 2n de DAM usuari: dam | contrasenya: dam2122
Documentació
Distribució de M07UF1 i M13 al curs 2022-2023 de 2n de DAM
Recull de pràctiques de 2n de DAM. Curs 2022-2023
Qt/QML
Paquets que manquen per a fer funcionar les Qt a l'Ubuntu:
sudo apt install libx11-xcb-dev libglu1-mesa-dev
Activació de l'editor QML al QtCreator 6
Qt5 de Jan Bodnar
Qt5 Cadaques! A Book about Qt5
Qt Quick tutorial de Jan Bodnar
PyQt5 de Jan Bodnar
Qt for WebAssembly
json
How To Manipulate JSON With C++ and Qt
QProcess
Qt5 tutorial FFmpeg converter using QProcess - 2020
IoT
TCP/UDP Capa de transport d'Ethernet
Afegint la targeta ESP8266 a l'IDE d'Arduino (NodeMCU1.0)
Micropython and the Internet of Things
SCADA fent servir Python QML i Arduino
Placa IoT-02
Per a la programació amb l'IDE d'Arduino: https://dl.espressif.com/dl/package_esp32_index.json
LoRaWAN
Consola de The Things Stack (Community Edition) de The Things Network
Presentació LoRaWAN (esborrany v0.4)
Recull introductori per a treballar amb LoRa ( usuari: dam / contrasenya: dam2122)
Recull de pràctiques de 2n de DAM. Curs 2021-2022
Transmissió d'un número real de tipus IEEE-754 (4 bytes) i llur recuperació a NodeRED