Diferència entre revisions de la pàgina «DAM 2023-2024»

De binefa.com
Salta a la navegació Salta a la cerca
Línia 16: Línia 16:
 
= Algunes classes =
 
= Algunes classes =
 
== 20240119 (2h) ==
 
== 20240119 (2h) ==
[[Ús de MariaDB per emmagatzemar dades de la Internet de les Coses]]
+
<!-- [[Ús de MariaDB per emmagatzemar dades de la Internet de les Coses]] -->
  
 
== 20240116 (1h) ==
 
== 20240116 (1h) ==

Revisió del 11:37, 19 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

Enllaços ràpids

Compartició de pantalla

Recull de pràctiques de 2n de DAM. Curs 2023-2024

Recull de codis fets a classe. Curs 2023-2024

Llista de 2n de DAM

Totes les llistes

Algunes classes

20240119 (2h)

20240116 (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

20240112 (1h)

Continuem desenvolupant la pràctica A13.00 del recull de pràctiques

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

Darrera versió de NodeRed

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

Telegram

Bot de 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

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)

Recull del dia d'avui

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)

Recull del dia d'avui


Comunicació bidireccional del frontal en QML amb el rerefons en C++

Frontal: En anglès front-end. Rerefons: En anglès back-end


Procés de creació de codi per a comunicar un frontal QML amb un rerefons C++: Vídeos QML

20231211 (3h)

Recull del dia d'avui

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

Pàgina oficial de 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)

Recull del dia d'avui

Introducció al QML. Curs 2023-2024

20231204 (3h)

Recull del dia d'avui

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

Instal·lació de les eines mínimes (SDK, NDK i eines de terminal) per a fer aplicacions en Qt per a Android

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)
  • QDialog. Senyals accepted() i rejected(). Mètodes de resposta accept() i reject(). Respostes a dlg.exec(): QDialog::Accepted i QDialog::Rejected.
  • Documentació sobre Qt/C++:

- Llibre de Qt

- Tutorial breu sobre Qt

20231121 (1h)

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

20231013 (3h)

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)

A09 - FreeRTOS i MicroWorkers

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)

A09 - FreeRTOS i MicroWorkers

20231027 (1h + 1h)

1a hora: Seguim fent exercicis IoT

2a hora: Seguim fent exercicis Qt

20231024 (1h)

A06.02

20231020 (2h)

Micropython a la placa IoT-02

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)

Recull del dia d'avui

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.

Flujx canvi de color d'un punt


Visualització canvi de color d'un punt

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)

Introducció a l'MQTT

El protocol MQTT

20231009 (3h)

Pràctica A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed

Introducció a l'MQTT

Configuració de l'MQTT-Dash (mqtt-dash-iot-smart-home.apk)

20231006 (1h + 1h)

Recull del dia d'avui

20231003 (1h)

Recull del dia d'avui

  • Giny botó --> qDebug()
  • Giny lliscant + visualitzador LCD
  • Cursors
  • Matrioxca
  • Interfície gràfica que incrementa i decrementa

20231002 (3h)

Recull del dia d'avui

Codi Snap!

20230929 (1h + 1h)

Recull del dia d'avui

20230926 (1h)

Recull del dia d'avui

20230922 (1h + 1h)

Recull del dia d'avui

20230919 (1h)

  • Dubtes del dia anterior

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

Activitat 6

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

Activitat 7

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

Totes les llistes

Distribució de M07UF1 i M13 al curs 2022-2023 de 2n de DAM

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

Projecte global GP1. IoT

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

Vídeos QML

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

Instal·lació de les eines mínimes (SDK, NDK i eines de terminal) per a fer aplicacions en Qt per a Android

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

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

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

Placa IoT-02

Placa IoT-02

Introducció a la placa IoT-02

Per a la programació amb l'IDE d'Arduino: https://dl.espressif.com/dl/package_esp32_index.json

Programació en MicroPython

LoRaWAN

LoRa 2022-2023

Consola de The Things Stack (Community Edition) de The Things Network

Presentació LoRaWAN (esborrany v0.4)

Ús pràctic de LoRaWAN TTNv2

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

Downlink LoRaWAN fent servir TTSv3