Diferència entre revisions de la pàgina «DAM 2023-2024»
Línia 15: | Línia 15: | ||
= Algunes classes = | = Algunes classes = | ||
+ | == 20240112 (1h) == | ||
+ | Continuem desenvolupant la pràctica A13.00 | ||
== 20240115 (3h) == | == 20240115 (3h) == | ||
=== '''Mastodon''' === | === '''Mastodon''' === |
Revisió del 16:03, 12 gen 2024
Quan tingueu les credencials d'accés a la NET heu de compartir una carpeta amb aquest nom: 2324-DAM-1rCognom2nCognomNom (Per exemple, si el vostre nom és Xavier López Pujol --> 2324-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 2023-2024
Contingut
- 1 Enllaços ràpids
- 2 Algunes classes
- 2.1 20240112 (1h)
- 2.2 20240115 (3h)
- 2.3 20240109 (1h)
- 2.4 20240108 (3h)
- 2.5 20231219 (1h)
- 2.6 20231218 (3h)
- 2.7 20231215 (1h + 1h)
- 2.8 20231211 (3h)
- 2.9 20231205 (1h)
- 2.10 20231204 (3h)
- 2.11 20231201 (2h)
- 2.12 20231128 (1h)
- 2.13 20231127 (3h)
- 2.14 20231124 (1h + 1h)
- 2.15 20231121 (1h)
- 2.16 20231120 (3h)
- 2.17 20231117 (1h + 1h)
- 2.18 20231114 (1h)
- 2.19 20231013 (3h)
- 2.20 20231110 (1h + 1h)
- 2.21 20231107 (1h)
- 2.22 20231106 (3h)
- 2.23 20231103 (1h + 1h)
- 2.24 20231031 (1h)
- 2.25 20231030 (3h)
- 2.26 20231027 (1h + 1h)
- 2.27 20231024 (1h)
- 2.28 20231020 (2h)
- 2.29 20231020 (2h)
- 2.30 20231017 (1h)
- 2.31 20231016 (3h)
- 2.32 20231010 (1h)
- 2.33 20231009 (3h)
- 2.34 20231006 (1h + 1h)
- 2.35 20231003 (1h)
- 2.36 20231002 (3h)
- 2.37 20230929 (1h + 1h)
- 2.38 20230926 (1h)
- 2.39 20230922 (1h + 1h)
- 2.40 20230919 (1h)
- 2.41 20230918 (3h)
- 3 Repositori de codis fet a classe durant el curs
- 4 Documentació
Enllaços ràpids
Recull de pràctiques de 2n de DAM. Curs 2023-2024
Recull de codis fets a classe. Curs 2023-2024
Algunes classes
20240112 (1h)
Continuem desenvolupant la pràctica A13.00
20240115 (3h)
Mastodon
- Mastodon, una alternativa lliure a Twitter
No totes les instàncies de Mastodon faciliten la instal·lació de bots. Per a fer els primers passos us recomano aquesta instància pensada per a hostatjar bots de Mastodon (tal i com es va demanar el dia anterior, heu d'haver demanat les credencials a la instància de Mastodon botsin.space amb molta antelació. Si ho sol·liciteu avui mateix no podreu seguir la classe).
Obtenció de les credencials per a l'API de Mastodon amb Mastodon.py, pas per pas
20240109 (1h)
Continuem desenvolupant la pràctica A13.00 del recull de pràctiques
Deures pel 15 de gener
Feu-vos membres d'aquesta instància de Mastodon: botsin.space
Feu-ho amb prou antelació, és possible que trigui més de tres hores a donar-vos accés.
20240108 (3h)
Recull de codis comentats avui
Autenticació d'accés a NodeRED
Generació de la contrasenya d'accés en mode hash des de la carpeta d'execució del NodeRED:
node node_modules/node-red/red.js admin hash-pw
En aquest exemple fem servir aquesta contrasenya en mode hash:
$2a$08$PbYFpiQSnoVaOfD1daCelU2Kvcg19KElO1DbVtE8GAJXacD6ABq
Edició de settings.js:
toni@vps-10d8edcd:~/bin/nodered$ nano ./node_modules/node-red/settings.js
// Securing Node-RED // ----------------- // To password protect the Node-RED editor and admin API, the following // property can be used. See http://nodered.org/docs/security.html for details. adminAuth: { type: "credentials", users: [{ username: "toni", password: "$2a$08$PbYFpiQSnoVaOfD1daCelU2Kvcg19KElO1DbVtE8GAJXacD6ABq", permissions: "*" }] },
Un cop fets el canvis cal reiniciar el NodeRED.
- Feu l'exercici A14.1 del recull de pràctiques
Telegram
- Creació de bots amb BotFather
- Instal·lació de nodes de Telegram a NodeRED (afegiu els nodes node-red-contrib-telegrambot)
- Interacció amb un usuari de Telegram
- Interacció amb un grup de Telegram
Material per a fer el bot i flux de prova per al bot de Telegram
- Feu els exercicis A14.2 i A14.3 del recull de pràctiques
Deures pel 15 de gener
Feu-vos membres d'aquesta instància de Mastodon: botsin.space
Feu-ho amb prou antelació, és possible que trigui més de tres hores a donar-vos accés.
20231219 (1h)
Continuem desenvolupant la pràctica A13.00
20231218 (3h)
Activitat A13.00 ginyMqtt en QML i qmake
Al recull del dia d'avui hi ha una introducció a la pràctica A13.00
20231215 (1h + 1h)
- Exemple de pàgina lliscant. Ús de SwipeView. Funciona per qmake (no per cmake)
Comunicació bidireccional del frontal en QML amb el rerefons en C++
Frontal: En anglès front-end. Rerefons: En anglès back-end
- Exemple d'un rerefons en C. Ús de SwipeView i una classe de rerefons feta en C++. Funciona per qmake (no per cmake)
Procés de creació de codi per a comunicar un frontal QML amb un rerefons C++: Vídeos QML
- Activitat A08.04 del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231211 (3h)
Introducció al QML. Curs 2023-2024
Activitats A08.01, A08.02 i A08.03 del recull de pràctiques de 2n de DAM._Curs_2023-2024
PureQML
Posada en marxa del PureQML
- Instal·lació de l'eina python-future:
pip3 install future
A Windows:
pip install future
- Primera aplicació
mkdir prjFolder cd prjFolder git clone https://github.com/pureqml/qmlcore.git ./qmlcore/build --boilerplate ./qmlcore/build
A Windows, les dues darreres passes:
python qmlcore/build --boilerplate python qmlcore/build
Obriu amb un navegador l'arxiu prjFolder/build.web/index.html
- Modificació de prjFolder/src/app.qml:
Text { anchors.fill: context; text: 'Primer exemple de pureQML'; color: 'red'; font.pixelSize: 32; verticalAlignment: Text.AlignVCenter; horizontalAlignment: Text.AlignHCenter; }
Reconstruïu-ho:
./qmlcore/build
A Windows:
python qmlcore/build
Torneu a obrir amb un navegador l'arxiu prjFolder/build.web/index.html per a observar els canvis
Activitats A08.00 del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231205 (1h)
Introducció al QML. Curs 2023-2024
20231204 (3h)
Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
Comencem la pràctica A12.02
Al dia d'avui hi ha penjat:
- Exemple d'etiqueta dibuixada a partir d'un QPixMap: 00_botonsToggle05.zip
- Exemple de QTimer: 00_botonsToggle06.zip
- Exemple dels senyals pressed() i released(): 04_indicadorBotons00.zip
- Exemple d'ús de QJsonObject: 01_json_00.zip
- Biblioteca JSON per l'IDE d'Arduino: Arduino_JSON.zip (exemple d'ús: IoT-02_mqtt_10_dam.zip)
- Exemple de conversió de JSON a text i de text a JSON amb NodeRED (els temes MQTT han de ser de tipus text): json00.nodered.txt
20231201 (2h)
Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231128 (1h)
Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231127 (3h)
Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231124 (1h + 1h)
- Diferències entre el mètode setEnabled(bool) i setVisible(bool)
- Qt's keyPressEvent ( #include <QKeyEvent> )
- QDialog. Senyals accepted() i rejected(). Mètodes de resposta accept() i reject(). Respostes a dlg.exec(): QDialog::Accepted i QDialog::Rejected.
- Seguim fent l'activitat A06.04 - Interfícies gràfiques
- Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
- Documentació sobre Qt/C++:
20231121 (1h)
- Explicació de l'activitat A06.04 - Interfícies gràfiques
- Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231120 (3h)
Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231117 (1h + 1h)
Seguim fent les activitats pendents del recull de pràctiques de 2n de DAM._Curs_2023-2024
20231114 (1h)
Exemple d'arxiu de projecte emprant CMake
- CMake
CMake: The Standard Build System
Getting started with CMake in Qt6
Vídeo CMake and Qt (Part 1) - CMake Introduction
Qt and CMake: The Past, the Present and the Future
Vídeo Migrating from QMake to CMake | #QtWS22
- Seguim fent l'activitat A12.01.1 - ginyMqtt amb QMake
- Activitat A12.01.2 - ginyMqtt amb CMake
20231013 (3h)
- Document actualitzat de la Instal·lació de QtMQtt a les Qt
- Activitat A06.05 i A07.08 (prova de QtMQtt a la placa IoT-02) publicada a A06 - POO en C++ i Qt i A07 - Introducció a la placa IoT-02, Wokwi i protocols de comunicació. A06.05 i A07.08 són la mateixa pràctica (pengeu dos documents pdf idèntics amb els noms corresponents a les dues pràctiques a les carpetes A06 i A07 del Drive).
- A partir de simplecient amb usuari i contrasenya s'ha generat la classe mqttBasic.
- Activitat A12.01 - ginyMqtt
20231110 (1h + 1h)
Seguim fent els exercicis pendents del Recull de pràctiques de 2n de DAM._Curs_2023-2024
20231107 (1h)
Feu-li una ullada a simplecient amb usuari i contrasenya. Provem llur funcionament interactuant bidireccionalment amb la placa IoT-02
Seguim fent els exercicis pendents de l'activitat A06 - POO en C++ i Qt
20231106 (3h)
MicroWorkers Tasques en MicroPython
FreeRTOS Tasques en C a sistemes encastats. (Pàgina oficial de FreeRTOS)
Seguim fent els exercicis pendents del Recull de pràctiques de 2n de DAM._Curs_2023-2024
20231103 (1h + 1h)
Seguim fent els exercicis pendents del Recull de pràctiques de 2n de DAM._Curs_2023-2024
20231031 (1h)
Instal·lació de QtMQtt a les Qt
Seguim fent els exercicis pendents de l'activitat A06 - POO en C++ i Qt
20231030 (3h)
Seguim fent els exercicis pendents de l'activitat A07 - Introducció a la placa IoT-02, Wokwi i protocols de comunicació
MicroWorkers Tasques en MicroPython
FreeRTOS Tasques en C a sistemes encastats. (Pàgina oficial de FreeRTOS)
20231027 (1h + 1h)
1a hora: Seguim fent exercicis IoT
2a hora: Seguim fent exercicis Qt
20231024 (1h)
20231020 (2h)
Referència ràpida sobre MicroPython a l'ESP32
Pràctica A07.08 - Introducció al micropython
Exercicis de MicroPython (agafant com a referència codis en C al GitHub).
20231020 (2h)
Explicació de com encastar ginys i connectar-los mitjançant senyals (signals) i osques (slots) en C++/Qt.
Pràctica A06.01 - Ginys encastats
20231017 (1h)
Explicació de com encastar ginys i connectar-los mitjançant senyals (signals) i osques (slots) en C++/Qt.
Pràctica A06.01 - Ginys encastats
20231016 (3h)
Nodes de text, botó i variables de flux. Canvi de color d'un punt (representació d'un led)
El node botó tramet un payload personalitzat quan es prem.
En el Value format del node de text:
<font color={{msg.color}} ><i class="fa fa-circle" style="font-size:24px;"></i></font>
Funció FF3399:
msg.color = "#FF3399" return msg;
Funció {R,G,B} -> {0,0,0}:
flow.set("R","00"); flow.set("G","00"); flow.set("B","00"); flow.set("RGB","#"+flow.get("R")+flow.get("G")+flow.get("B")); msg.color = flow.get("RGB"); return msg;
Funció R -> FF:
flow.set("R","FF"); flow.set("RGB","#"+flow.get("R")+flow.get("G")+flow.get("B")); msg.color = flow.get("RGB"); return msg;
Funció R -> 00:
flow.set("R","00"); flow.set("RGB","#"+flow.get("R")+flow.get("G")+flow.get("B")); msg.color = flow.get("RGB"); return msg;
Flux ledMulticolor.nodered.json
Pràctica A07.02 - Punt multicolor al NodeRED i variables de flux
Pràctica A07.03 - Visualització amb un giny rellotge del nivell de llum
Pràctica A07.04 - Ús d'MQTT (no MQTTS) (broker: formacio.things.cat, usuari: ecat, contrasenya: clotClot) Codi per a la placa IoT-02 emprant MQTT
Pràctica A07.05 - Instal·lació del servei mosquitto
Pràctica A07.06 - Ús del servei mosquitto
20231010 (1h)
20231009 (3h)
Pràctica A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed
Configuració de l'MQTT-Dash (mqtt-dash-iot-smart-home.apk)
20231006 (1h + 1h)
20231003 (1h)
- Giny botó --> qDebug()
- Giny lliscant + visualitzador LCD
- Cursors
- Matrioxca
- Interfície gràfica que incrementa i decrementa
20231002 (3h)
20230929 (1h + 1h)
20230926 (1h)
20230922 (1h + 1h)
20230919 (1h)
- Reviseu si teniu la vostra carpeta compartida enllaçada a: Carpetes compartides de 2n de DAM. Curs_2023-2024
- 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
20230918 (3h)
Recull del dia 20230918 usuari: dam | contrasenya: dam2324
Distribució de M07UF1 i M13 al curs 2023-2024
Distribució de M07UF1 i M13 al curs 2023-2024 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 libxcb-xinerama0
IoT
- NodeRED
Instal·lació de Node.js Guia d'instal·lació de node i npm
Supported Node versions on NodeRed
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: dam2324
Documentació
Drive curs 2023-2024 (Alèxia, SAC). Eina d'avaluació GP1
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 libxcb-xinerama0
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
Instal·lació de QtMQtt a les Qt
Qt for Android
Getting Started with Qt for Android
Getting Started with Qt6.5 for Android
Qt for WebAssembly
json
How To Manipulate JSON With C++ and Qt
QProcess
Qt5 tutorial FFmpeg converter using QProcess - 2020
CMake
Cal fer la instal·lació d'aquests paquets a Debian 11:
sudo apt-get install libqt5svg5-dev qtscript5-dev sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev sudo apt purge ibus
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