DAM 2020-2021
Contingut
- 1 Teleconferència del curs 2020-2021
- 2 Alguns vídeos d'ajuda
- 3 Algunes classes
- 3.1 20201201 Examen 1r trimestre
- 3.2 20201130 (dubtes i Qt, 1h síncrona)
- 3.3 20201127 (Qt i IoT, 1h síncrona)
- 3.4 20201124 (IoT i Qt) (3h, presencial)
- 3.5 20201123 (Qt i IoT, 1h síncrona)
- 3.6 20201120 (Qt i IoT, 1h síncrona)
- 3.7 20201117 (Qt i IoT, 3h presencial)
- 3.8 20201116 (Qt, 1h síncrona)
- 3.9 20201113 (dubtes i Qt, 1h síncrona)
- 3.10 20201110 (IoT i Qt) (3h presencials)
- 3.11 20201109 (IoT i Qt) (1h en línia)
- 3.12 20201106 (IoT i Qt) (2h)
- 3.13 20201105 (IoT i Qt) (3h)
- 3.14 20201102 (IoT i Qt) (1h)
- 3.15 20201030 (IoT i Qt) (2h)
- 3.16 20201029 (IoT i Qt) (3h)
- 3.17 20201026 (IoT i Qt) (1h)
- 3.18 20201023 (IoT i Qt) (2h)
- 3.19 20201022 (IoT i Qt) (3h)
- 3.20 20201019 (lliurament Ex01 v2)
- 3.21 202010116 Qt (2h)
- 3.22 202010115 (IoT i Qt) (3h)
- 3.23 20201012 (lliurament Ex01)
- 3.24 20201009 Qt/QML (1h)
- 3.25 20201009 IoT (1h)
- 3.26 20201008 Qt/QML (1,5h)
- 3.27 20201008 IoT (1,5h)
- 3.28 20201005 IoT (1h)
- 3.29 20201002 IoT (2h)
- 3.30 20201001 IoT (3h)
- 3.31 20200928 IoT (1h)
- 3.32 20200425 Qt/QML (2h)
- 3.33 20200922 Qt/QML (2h)
- 4 Documentació
Teleconferència del curs 2020-2021
Alguns vídeos d'ajuda
Pseudoservidor UDP
Pseudoservidor UDP emprant Qt5 (1/2)
Pseudoservidor UDP emprant Qt5 (2/2)
Algunes classes
20201201 Examen 1r trimestre
Enunciat de l'examen del 1r trimestre
20201130 (dubtes i Qt, 1h síncrona)
Codis d'avui (Senyals, osques, agrupacions i connexions)
20201127 (Qt i IoT, 1h síncrona)
Revisem l'exercici proposat el darrer dia.
20201124 (IoT i Qt) (3h, presencial)
Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON
Codis d'interacció amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT.
Codi de flux de NodeRED per a controlar els leds de la placa IoT-02 mitjançant un JSON
Flux de NodeRED emprant MQTT i JSON bidireccional
Exercici amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT
Desenvolupeu el projecte 15_mqtt_IoT02_03, basant-vos en el darrer codi de control de la placa IoT-02 en C++ per a Qt, que visualitzi en una barra de progrés el nivell de llum rebut per la LDR.
20201123 (Qt i IoT, 1h síncrona)
Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON
Codis d'interacció amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT.
20201120 (Qt i IoT, 1h síncrona)
Al dia d'avui us he posat el codi per a poder visualitzar el color dels leds.
Fent servir MQTT, feu una aplicació emprant Qt que ensenyi l'estat dels botons i dels leds de la placa IoT-02
20201117 (Qt i IoT, 3h presencial)
Biblioteca Arduino_JSON per l'IDE d'Arduino
Dades encapsulades en JSON al NodeRED i a la placa IoT-02.
Exercici
Desenvolupeu una aplicació GUI feta amb Qt que mitjançant el protocol MQTT:
- Controli els quatre leds mitjançant botons seleccionadors (check box)
- Indiqui l'estat dels tres botons mitjançant etiqueta (premut / no premut)
- Indiqui l'estat dels tres botons mitjançant etiqueta gràfica (color viu / color fosc)
- Una barra de progrés indiqui el nivell de llum
- Trameti missatges a la pantalla OLED (tres botons seleccionadors de mida del text)
20201116 (Qt, 1h síncrona)
Exercici
Modifiqueu el codi de MQTT's simpleclient per a admetre usuari i contrasenya (podeu fer servir el broker formacio.things.cat amb usuari ecat i contrasenya clotClot).
Al mètode void MainWindow::on_buttonConnect_clicked() haureu d'afegir les crides als mètodes setUsername i setPassword de la classe QtMqtt (aquestes crides s'hauran de fer quan els camps d'usuari i contrasenya no estiguin buits):
ui->lineEditUsuari->setEnabled(false); ui->lineEditContrasenya->setEnabled(false); m_client->setUsername(ui->lineEditUsuari->text()); m_client->setPassword(ui->lineEditContrasenya->text()); m_client->connectToHost();
Màquina virtual per a VMware amb QtMqtt instal·lat
Màquina virtual GNU/Linux Debian 9 amb el paquet QtMqtt instal·lat per a VMware Workstation Player. Usuari / contrasenya: iot / iot
20201113 (dubtes i Qt, 1h síncrona)
qtmqtt
Per a instal·lar qtmqtt
git clone git://code.qt.io/qt/qtmqtt.git cd qtmqtt git checkout 5.14 mkdir build cd build qmake -r .. make sudo make install
(Abans de fer el qmake, feu un git checkout 5.14 -canvieu el 5.14 per la vostra versió de Qt instal·lada al vostre sistema-)
Heu de cercar la ruta de qmake en cas de que no hi sigui al vostre PATH
/home/jordi/bin/Qt/5.14.1/gcc_64/bin/qmake -r ..
Canvieu jordi pel vostre usuari i 5.14.1 per la vostra versió de Qt.
A Finestrots
Segons ens informa el Sr. Adrià Vega, les eines make i make install a Windows amb MinGW són:
MinGW32-make MinGW32-make install
20201110 (IoT i Qt) (3h presencials)
Microprogramari de prova MQTT per a la placa IoT-02. Pugeu-la fent servir l'IDE d'Arduino.
Eina per saber la MAC remotament (Codi font d'aquesta pàgina web)
20201109 (IoT i Qt) (1h en línia)
Snap! (També el podeu executar des de la vostra pròpia màquina. És important fer servir HTTP i no HTTPS)
Baixeu-vos localment aquesta biblioteca MQTT
Broker de prova de test.mosquitto.org
Flux de prova del NodeRED amb el broker test.mosquitto.org
Flux de NodeRED amb el broker formacio.things.cat i codi d'Snap! de prova del broker formacio.things.cat
20201106 (IoT i Qt) (2h)
20201105 (IoT i Qt) (3h)
Node executat per terminal per un port diferent a l'estàndard
Versió recomanada de Node per fer córrer NodeRED
Instal·lació de node v12 a Debian 10
20201102 (IoT i Qt) (1h)
20201030 (IoT i Qt) (2h)
20201029 (IoT i Qt) (3h)
A proposta dels estudiants, que han començat a fer una prova PCR a 2/4 de 2, excepcionalment avui es començarà a 3/4 de 4 (15.45).
Exercici 0) Provar les Qt comunicant-se amb la placa IoT-02 amb UDP, unidireccionalment des de l'ordinador a la placa.
1r exercici) A partir del codi del darrer dia, canvieu el port del pseudoservidor UDP de manera dinàmica. Heu d'afegir una línia d'edició (lineEdit) i que faci la connexió (bind) automàtica. Si es pot fer sortirà un text (label) de color verd indicant-ho, en cas contrari sortirà el text de color vermell. (No cal que ho feu a casa. Ho farem el dia 29 d'octubre).
2n exercici) Trameteu per correu electrònic la pràctica de les Qt connectant-se a la placa IoT-02 mitjançant UDP, bidireccionalment (No cal que ho feu a casa. Ho farem el dia 29 d'octubre).
Alguns enllaços útils
Ports ben coneguts (fins al port 1023 un usuari normal no hi té accés per defecte. A partir del 1024 qualsevol usuari el pot utilitzar).
20201026 (IoT i Qt) (1h)
20201023 (IoT i Qt) (2h)
20201022 (IoT i Qt) (3h)
QT5 TUTORIAL QUDPSOCKET - 2020
20201019 (lliurament Ex01 v2)
- Aquesta segona versió de la pràctica ha de fer la pregunta després de rebre la resposta. Exemple:
Pregunto cada segon L -> espero a rebre la resposta d'L.
Un cop rebo la resposta d'L, trameto la pregunta i.
Un cop rebo la resposta d'i, trameto la pregunta i34.
Un cop rebo la resposta d'i34, trameto la pregunta i35.
- Documenteu com configureu MQTT Dash (o similar) per a connectar-ho a NodeRED fent servir un broker MQTT públic.
202010116 Qt (2h)
202010115 (IoT i Qt) (3h)
20201012 (lliurament Ex01)
Finalització del termini de lliurament de l' Exercici 01. Recordeu les condicions del planteig i lliurament de l'Exercici 1
20201009 Qt/QML (1h)
Acabar l'explicació del dia anterior. 1) Revisió de conceptes bàsics de programació orientada a objectes en C++ 2) Distribució de ginys emprant Qt (editor XML gràfic) 3) Paradigma senyal-osca
20201009 IoT (1h)
Acabar l'explicació de tot el necessari per a fer l' Exercici 01.
20201008 Qt/QML (1,5h)
Conceptes bàsics sobre classes i objectes
Codis de terminal. Classes: Constructors, destructors, atributs i mètodes (públics, protegits i privats).
Distribució de ginys
Redimensió de la distribució i pistes (tips)
Canvi de la forma del cursor en funció de la zona a la distribució
Paradigma senyal / osca
Explicació del paradigma senyal / osca (signal / slot)
Interfície gràfica d'usuari emprants senyals i osques
20201008 IoT (1,5h)
UDP a la placa IoT-02
Connexió wifi a la placa IoT-02 (Codi que mostra el canal de la SSID detectada).
Microprogramari (firmware) per visualitzar les xarxes wifi visibles des de la placa IoT-02. Aprofitem aquest codi per a explicar la introducció d'arxius .cpp i .h al mateix directori que l'arxiu .ino
Microprogramari per treballar amb UDP a la placa IoT-02
Planteig de l'Exercici 01
Visualització de ginys al tauler de control (dashboard) al NodeRED. Connexió UDP entre la placa IoT-02 i el NodeRED.
Enllaç a l'enunciat de l' Exercici 01.
L'exercici s'ha de fer a classe de manera individual (es proposa com a data de lliurament per correu electrònic el dia 12 d'octubre de 2020). Heu de fer el report en pdf amb el títol dam_iot_pr01_cognom_nom.pdf (essent cognom el vostre cognom i nom el vostre nom. En cas de compartir nom i cognom amb un company canvieu cognom per cognom1_cognom2, essent cognom1 el primer cognom i cognom2 el segon cognom) i el tema del correu ha de ser dam_iot_pr01_cognom_nom. És molt important respectar el format dels caràcters, majúscules i minúscules per a poder automatitzar correctament la recepció dels vostres reports.
20201005 IoT (1h)
Executeu a la carpeta a on heu descomprimit el NodeRed autònom
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
Codis de NodeRED (UDP in i UDP out)
20201002 IoT (2h)
20201001 IoT (3h)
A aquest classe cal dur un cable microusb B i un cable miniusb o un cable miniusb i una font d'alimentació amb microusb B
Enllaç a un cable miniusb i microusb B (els dos)
Enllaça a una font d'alimentació de %V / 3A amb connector microusb
Presa de contacte amb la placa IoT-02.
20200928 IoT (1h)
NodeRed autònom i d'altres codis
20200425 Qt/QML (2h)
Codis de presa de contacte amb el Qt Creator
20200922 Qt/QML (2h)
Documentació
Qt/QML
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