Recull de pràctiques de 2n de DAM. Curs 2021-2022
Contingut
UDP
UDP-1
Mireu-vos l'ajuda al QtCreator per a saber com funciona la classe QUdpSocket. Podeu anar a la casella inferior i escriure-hi "'? QUdpSocket".
1) Feu un programa amb les Qt a on apareguin dos botons. El botó superior ha de tenir el text W i el nom de l'objecte del botó btEncenBlanc. El botó inferior ha de tenir el text w i el nom de l'objecte del botó btApagaBlanc.
El mètode que tramet el sòcol té aquest prototipus:
void GinyUdp::vTrametSocolUdp(QByteArray qbaCos,QHostAddress qhaAdd,int nPort)
Quan premeu qualsevol dels dos botons s'ha de trametre el text (W o w) al localhost (QHostAddress::LocalHost) al port 7755.
2) Executeu localment el vostre NodeRED i feu que un node UDP pseudoservidor rebi datagrames pel port 7755. (Feu una captura de pantalla, incloent-hi el NodeRED i el vostre programa en Qt, demostrant llur funcionament)
3) Modifiqueu el microprogramari (firmware) per rebre els sòcols tramesos pel programa en Qt. Indiqueu que heu canviat al microprogramri per a que funcioni. També heu de canviar l'adreça de destí del datagrama (la IP de la placa IoT-02).
UDP-2
L'exercici Qt anterior és la base per a fer aquest.
1) Afegiu ginys de tipus QLineEdit per a recollir el valor de la IP i el port de destí. Feu servir els ginys amics (buddies) per a relacionar etiquetes (QLabel) i línies d'edició (QLineEdit). Canvieu l'ordre de la tabulació per defecte.
2) Feu que al prémer un botó es trameti el contingut W o w del datagrama a la IP i port correctes.
TCP
MQTTS-01
- Microprogramari amb MQTTS a la placa IoT-02
- Connexió mitjançant sòcols web (9001) a un Snap! sense SSL. I vam provar mqttSnap.xml.
- Connexió mitjançant NodeRED. Enceneu i apagueu un led. Grafiqueu el nivell de llum mitjançant el sensor LDR. Deseu el flux de nodes en format JSON.
- Aplicació d'Android MQTT Dash (MQTTool a IOS)
MQTT-02
- Microprogramari amb MQTT a la placa IoT-02
- Connexió mitjançant sòcols web (9001) a un Snap! sense SSL. Modifiqueu mqttSnap.xml anomenant-lo mqttNoSegurSnap.xml .
- Connexió mitjançant NodeRED. Afegiu un nou broker MQTT per a comunicar-vos amb la placa. Enceneu i apagueu un led. Grafiqueu el nivell de llum mitjançant el sensor LDR. Deseu el flux de nodes en format JSON.
- Aplicació d'Android MQTT Dash. Teniu cura de no seleccionar que hi ha certificats SSL. (MQTTool a IOS)
QML
1) Feu un programa en QML que al principi hi surti un quadrat vermell centrat. Al prémer la tecla B hi sortirà de color blau, al prémer la tecla G hi sortirà de color verd i al prémer la tecla R torna a ser vermell.
2) Feu un programa en QML a on hi aparegui centrat, horitzontalment i vertical, ben gros i en negreta el nom Escola del Clot. Al prémer la tecla + la lletra es farà més grossa. I al prémer la tecla - la lletra es farà més petita.
3) Feu un programa que hi surti el text, centrat a la finestra, "Comptador: 0" de color vermell. Al prémer el botó + incrementarà el valor del comptador, i al prémer el botó '-' es decrementarà. Al prémer la tecla N el text serà de color negre i al prémer V tornarà a ser de color vermell.
Qt
1) Desenvolupeu una aplicació de Qt que interactuï amb la placa.
Ha de tenir:
Selecció de connectivitat mitjançant MQTT o MQTTS, amb botó de connexió / desconnexió. En funció de l'estat de connexió, amb una etiqueta hi sortirà en vermell desconnectat, en blau connectant i en verd connectat.
Mitjançant radio buttons es pot seleccionar les tres mides de text de la pantalla. A un line edit s'escriu el missatge i un botó de tramesa (activat si hi ha connexió).
Quatre caselles de selecció (check button) per a controlar la il·luminació dels quatre leds.
Tres etiquetes que mostren si els botons estan premuts o no.
Botó de petició del valor de l'LDR. Una casella de selecció, amb un line edit per a introduir el nombre de segons que permeti la repetició de la petició de valor.
Botó de petició del valor de la temperatura, humitat relativa i pressió atmosfèrica. Una casella de selecció, amb un line edit per a introduir el nombre de segons que permeti la repetició de la petició de valor.