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

De binefa.com
Salta a la navegació Salta a la cerca
Línia 9: Línia 9:
  
 
== 20211105 ==
 
== 20211105 ==
Al disc dur que us passaré hi ha dues màquines virtuals (''andro_8.1-r4-VM-32bit.7z'' de 543,8 MB i ''IoT - eCat - Debian 11.x 64-bit _v20210202_00.zip'' de 19,0 GB) al directori ''maquinesVirtuals/Android_i_Qt''
+
Al disc dur que us passaré hi ha dues màquines virtuals (''andro_8.1-r4-VM-32bit.7z'' de 543,8 MB i ''IoT - eCat - Debian 11.x 64-bit_v20210304_00.zip'' de 19,0 GB) al directori ''maquinesVirtuals/Android_i_Qt''
  
 
=== Màquina virtual amb emulador per a Android ===
 
=== Màquina virtual amb emulador per a Android ===

Revisió del 14:07, 5 nov 2021

Quan tingueu les credencials d'accés a la NET heu de compartir-me una carpeta amb aquest nom: 2122-DAM-1rCognom2nCognomNom (Per exemple, si el teu nom és Xavier López Pujol --> 2122-DAM-LopezPujolXavier). A aquest enllaç podreu veure si ja hi sou a la llista:

Carpetes compartides de 2n de DAM. Curs 2021-2022

Algunes classes

Llista de 2n de DAM

Teleconferència provisional per a compartir pantalla i confinats

20211105

Al disc dur que us passaré hi ha dues màquines virtuals (andro_8.1-r4-VM-32bit.7z de 543,8 MB i IoT - eCat - Debian 11.x 64-bit_v20210304_00.zip de 19,0 GB) al directori maquinesVirtuals/Android_i_Qt

Màquina virtual amb emulador per a Android

Emulador d'Android a una màquina virtual

Aneu amb cura, malgrat és obsolet quelcom es pot fer servir en part: Using VMWare to replace the slow Android Emulator

És important que aquesta màquina virtual estigui configurada amb:

  • Connexió pont (bridge i no NAT)
  • Memòria mínima de 2GB

Màquina virtual amb Debian 11, Android Studio i Qt6 per a escriptori i Android

Adreça de descàrrega de la màquina virtual amb Debian 11, Android Studio i Qt6 per a escriptori i Android

Avui us passaré, comprimida a 19GB, una màquina virtual basada en Debian 11 (a hores d'ara, Debian 11 és en fase de testing) amb els següents programes ja instal·lats i preparats per a funcionar:

  • Android Studio
  • QtCreator amb la darrera Qt5 LTS i les Qt6
  • Biblioteca qtMqtt preparada per a funcionar a l'escriptori i a Android amb les Qt6

Configuració de la màquina virtual:

  • L'usuari per defecte és ecat (eCat)
  • La contrasenya de l'usuari ecat és clotfje (ecat és membre del grup d'usuaris sudo i dialout). Almenys a l'hora de passar-vos la màquina virtual. És aconsellable que canvieu la vostra contrasenya d'accés.
  • És aconsellable tenir la connexió de xarxa en connexió pont (bridge). Però no cal per a connectar-ho amb l'emulador d'Android amb màquina virtual. Sí que caldria per a tenir accés extern al broker MQTT i al NodeRED (no instal·lats en aquesta primera versió).
  • Memòria mínima de 4GB

Connectant les dues màquines virtuals

  • Trobeu quina IP té la màquina virtual amb l'emulador d'Android (a l'explicació faré servir com a IP de l'emulador 172.20.xy.xyz).
  • Obriu un terminal a la màquina virtual amb Debian 11:
ecat@iot-ecat:~$ cd Android/Sdk/platform-tools/
ecat@iot-ecat:~/Android/Sdk/platform-tools$ ./adb connect 172.20.xy.xyz:5555
* daemon not running; starting now at tcp:5037
* daemon started successfully
connected to 172.20.25.152:5555
ecat@iot-ecat:~/Android/Sdk/platform-tools$ ./adb shell
x86:/ $
  • Obriu el Qt Creator (premeu la supertecla -aquella amb el símbol d'una finestra propietària- i escriviu-hi Qt). Feu un exemple simple de QML (per exemple el del swipe). Seleccioneu les Qt6 per a escriptori i Android x86 (amb l'opció Release i sense Debug ni Profile). Aneu a Tools / Options / Devices i verifiqueu que no hi dóna cap error de configuració (és possible que al principi surtin marques vermelles, però al cap de pocs segons se'n van). Assegureu-vos que compilareu per Android i feu Play al projecte de les Qt. Seleccioneu el dispositiu compatible VMware Virtual Platform. I premeu al botó OK.
  • Al cap de pocs segons hi apareix el programa bàsic swipe a l'emulador sobre màquina virtual. El podeu aturar prement el botó quadrat vermell d'Application Output.

qtMqtt

qtMqtt oficial

Feu un git clone i especifiqueu la versió amb un git checkout 6.0. Després:

cd qmqtt
mkdir build
cd build
qmake -r ..
make
sudo 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.

20211029

Recull de pràctiques de 2n de DAM. Curs 2021-2022

1a) Feu un nou programa anomenat ginyCompost02, a partir de l'anterior codi. Heu de posar un nou giny de botons a la dreta del giny de text. Quedaran tres ginys: Botons - Text - Botons.

1b) Feu que ginyCompost02 tingui també connectades els senyals i les osques del nou giny.

20211025

Recull de pràctiques de 2n de DAM. Curs 2021-2022

Pràctica amb MQTT (sense la S d'MQTTS). Heu de fer servir el port TCP 1883 i amb sócols web el port 9001 ( formacio.things.cat ) amb usuari ecat i contrasenya clotClot.

Codi en python per a truaduir el text d'un certificat a codi encastable a l'IDE d'Arduino

MQTT-Dash. Control del relé de enclavamiento y lectura de la LDR

  • Pràctica amb MQTTS:

- 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. Encenem i apaguem un led. Grafiquem el nivell de llum mitjançant el sensor LDR.

- Aplicació d'Android MQTT Dash

  • Pràctica amb MQTT:

Ha de ser el mateix que la pràctica anterior fent servir MQTT en comptes d'MQTTS.

20211021

Recull de pràctiques de 2n de DAM. Curs 2021-2022

Al codi mqttSnap.xml heu d'afegir una cancel·lació de subscripció un cop rebeu la vostra MAC.

Recull de codis del dia d'avui usuari: dam / contrasenya: dam2122

IoT

Introducció als protocols TCP MQTT i MQTTS.

¿Qué es MQTT? Su importancia como protocolo IoT

Més informació sobre MQTT i MQTTS

Adreces comentades a classe

El broker gratuït més famós

Ports emprats per mosquitto

mqtt4snap Fet per en Xavier Pi

Broker MQTT que permet fer balanceig de servei de franc

Exemple Hola món amb Snap! amb SSL Cal activar a la rodeta d'engranatge l'opció JavaScript extensions

Snap! sense certificat SSL Cal activar a la rodeta d'engranatge l'opció JavaScript extensions

20211018

Recull de pràctiques de 2n de DAM. Curs 2021-2022

Pseudoservidor UDP

Pseudoservidor UDP emprant Qt5 (1/2)

Pseudoservidor UDP emprant Qt5 (2/2)

20211015

  • UDP
    • Al NodeRED
    • NodeRED + Placa IoT-02

Avui hem aconseguit controlar des del mòbil (tauler de control del NodeRED amb dos botons) l'estat del led blanc de la placa IoT-02.

IoT

Introducció al protocol UDP.

UDP: Què és el protocol UDP?

Microprogramari que implementa el protocol UDP per a la placa IoT-02.

unsigned int udpPortRx = 3334;
unsigned int udpPortTx = 3333;


04_wifiUdp

Codi per a importar al NodeRED fent servir el protocolo UDP. El port de recepció de l'ordinador (3333) ha de ser el de transmissió a la placa, i el de recepció a la placa (3334) ha de ser el de transmissió de l'ordinador.

Port Rx = 3333
Port Tx = 3334

Qt

  • Concepte senyal / osca (signal / slot)

Recull de codis del dia d'avui usuari: dam / contrasenya: dam2122

20211011

Recull de codis del dia d'avui usuari: dam / contrasenya: dam2122

Qt

Seguim amb la introducció a les Qt.

Exercici 02_mesMenys

Desenvolupeu una aplicació gràfica d'usuari, anomenada 02_mesMenys amb la classe GinyMesMenys filla de QWidget, amb tres ginys encastats:

  • Botó botoMes amb el signe +. Incrementa el valor de l'atribut privat nN
  • Botó botoMenys amb el signe -. Decrementa el valor de l'atribut privat nN
  • Etiqueta etNum que presenta el valor de l'atribut privat nN
GinyMesMenys

20211008

Recull de codis del dia d'avui usuari: dam / contrasenya: dam2122

Introducció a les Qt

20211004

Prova amb les plaques IoT-02

JESUITES_FP - educanet01

20211001

Teleconferència pel dia d'avui

Biblioteques Arduino per a la placa IoT-02 (493M)

Codis i disseny electrònic de la placa IoT-02 a Github o git clone https://github.com/jordibinefa/IoT-02.git

Repartiment de Placa IoT-02. De moment, i fins que no es digui el contari, les tornareu el mateix dia.

Heu de dur a classe una font d'alimentació microUSB, o un cable de connexió microUSB per connectar a l'ordinador. Tingueu en compte que us caldrà una altra boca per a connectar el cable miniUSB que us serà subministrat per a programar la placa IoT-02.

20210927

Teleconferència pel dia d'avui

Distribució de M07UF1, M09UF2, M09UF3, M15UF1 i M13 al curs 2021-2022 de 2n de DAM

Recull del dia 20210927 usuari: dam | contrasenya: dam2122

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

IoT

Placa IoT-02

Instal·lació de Node.js

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

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, M09UF2, M09UF3, M15UF1 i M13 al curs 2021-2022 de 2n de DAM

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