Diferència entre revisions de la pàgina «DAM 2020-2021»

De binefa.com
Salta a la navegació Salta a la cerca
Línia 10: Línia 10:
 
= Algunes classes =
 
= Algunes classes =
 
== 20201116 (Qt, 1h síncrona) ==
 
== 20201116 (Qt, 1h síncrona) ==
 +
[https://binefa.cat/dam2021/20201116_qt_iot/ Codis d'avui]
 +
 +
=== Exercici ===
 +
Modifiqueu el codi de [https://binefa.cat/dam2021/20201116_qt_iot/simpleclient.zip MQTT's simpleclient] per a admetre usuari i contrasenya.
 +
 +
[https://binefa.cat/dam2021/20201116_qt_iot/simpleClient_usrPwd.png Captura del GUI que es demana]
 +
 +
Al mètode void MainWindow::'''on_buttonConnect_clicked()''' haureu d'afegir les crides als mètodes '''setUsername''' i '''setPassword''' de la classe QtMqtt:
 +
        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 ===
 +
 
[http://popotamo.binefa.cat/iot/maqVirt/Debian9_iot_qt.zip Màquina virtual GNU/Linux Debian 9 amb el paquet QtMqtt instal·lat] per a VMware Workstation Player. Usuari / contrasenya: iot / iot
 
[http://popotamo.binefa.cat/iot/maqVirt/Debian9_iot_qt.zip Màquina virtual GNU/Linux Debian 9 amb el paquet QtMqtt instal·lat] per a VMware Workstation Player. Usuari / contrasenya: iot / iot
 
[https://binefa.cat/dam2021/20201116_qt_iot/ Codis d'avui]
 
  
 
== 20201113 (dubtes i Qt, 1h síncrona) ==
 
== 20201113 (dubtes i Qt, 1h síncrona) ==

Revisió del 11:18, 16 nov 2020

Teleconferència del curs 2020-2021

Adreça de la teleconferència

Alguns vídeos d'ajuda

Pseudoservidor UDP

Pseudoservidor UDP emprant Qt5 (1/2)

Pseudoservidor UDP emprant Qt5 (2/2)

Algunes classes

20201116 (Qt, 1h síncrona)

Codis d'avui

Exercici

Modifiqueu el codi de MQTT's simpleclient per a admetre usuari i contrasenya.

Captura del GUI que es demana

Al mètode void MainWindow::on_buttonConnect_clicked() haureu d'afegir les crides als mètodes setUsername i setPassword de la classe QtMqtt:

       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)

Codis d'avui

qtmqtt

Per a instal·lar qtmqtt

git clone git://code.qt.io/qt/qtmqtt.git
cd qtmqtt
mkdir build
cd build
qmake -r ..
make
sudo make install

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 ..

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)

Codis d'avui

Teoria sobre TCP i UDP

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)

Codis d'avui

20201105 (IoT i Qt) (3h)

Codis d'avui

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

NodeRED autònom

20201102 (IoT i Qt) (1h)

Codis d'avui

20201030 (IoT i Qt) (2h)

Codis d'avui

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).

Codis d'avui

20201026 (IoT i Qt) (1h)

Codis d'avui de Qt

20201023 (IoT i Qt) (2h)

Codis d'avui de Qt

20201022 (IoT i Qt) (3h)

Codis d'avui de Qt

QT5 TUTORIAL QUDPSOCKET - 2020

Codis d'avui d'IoT

20201019 (lliurament Ex01 v2)

Codis d'avui

  • 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)

Codis d'avui

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

Què és TCP i UDP?

Codis de NodeRED (UDP in i UDP out)

20201002 IoT (2h)

La placa IoT-02 al GitHub

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)

Instal·lador de Qt

Codis de l'11 de maig de 2020

Documentació

Qt/QML

Qt5 de Jan Bodnar

Vídeos QML

Qt5 Cadaques! A Book about Qt5

Qt Quick tutorial de Jan Bodnar

PyQt5 de Jan Bodnar

Qt for WebAssembly

Qt for WebAssembly

json

How To Manipulate JSON With C++ and Qt

QProcess

QProcess example

Qt5 tutorial FFmpeg converter using QProcess - 2020

IoT

Introducció al Node-RED

TCP/UDP Capa de transport d'Ethernet

Introducció a MQTT

Afegint la targeta ESP8266 a l'IDE d'Arduino (NodeMCU1.0)

Micropython and the Internet of Things

SCADA fent servir Python QML i Arduino

MQTT avec Qt