Diferència entre revisions de la pàgina «DAM 2024-2025»
m (→20240916) |
m (→20250425) |
||
(Hi ha 210 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 14: | Línia 14: | ||
= Algunes classes = | = Algunes classes = | ||
+ | == 20250429 == | ||
+ | * Desenvolupament del projecte final. | ||
+ | == 20250428 == | ||
+ | * Classe anul·lada per apagada elèctrica | ||
+ | * Desenvolupament del projecte final. | ||
+ | == 20250425 == | ||
+ | * Desenvolupament del projecte final. | ||
+ | |||
+ | == 20250422 - Projecte final == | ||
+ | * Comença el desenvolupament del projecte final. | ||
+ | |||
+ | == 20250411 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250408 - Examen 3r T == | ||
+ | * [https://recull.binefa.cat/files/20250408exSm7Pj9_3rT/ Prova epistemològica del tercer trimestre del SM7 i PJ9]. | ||
+ | |||
+ | == 20250407 == | ||
+ | * Comentem la prova epistemològica de l'any passat | ||
+ | * Repassem els tests unitaris que vam fer al projecte de QML ''test02'' | ||
+ | * Dubtes | ||
+ | == 20250404 == | ||
+ | * Seguim amb la [[Introducció al testing]] emprant Qt/QML | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250401 == | ||
+ | * [[Introducció al testing]] | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250331 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250328 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250325 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250324 == | ||
+ | * Pràctiques noves: '''M04''' (programa en Qt de control de la placa mitjançant ModBus) i '''M05''' (programa en QML de control de la placa mitjançant ModBus) | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250321 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250318 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250317 == | ||
+ | * Com treure senyals pel port sèrie de la placa IoT-02 | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250314 == | ||
+ | * [https://ca.wikipedia.org/wiki/SCADA Sistemes SCADA] | ||
+ | * [[Modbus RTU]] | ||
+ | * Fent servir l'eina de manteniment de les Qt feu la instal·lació de les biblioteques addicionals [https://doc.qt.io/qt-6/qserialport.html QSerialPort] i [https://doc.qt.io/qt-6/qtserialbus-index.html QtSerialBus] (M00.2) | ||
+ | * [https://doc.qt.io/qt-6/qtserialport-terminal-example.html Serial Terminal] Exemple estàndard de les Qt per a fer ús de [https://doc.qt.io/qt-6/qserialport.html QSerialPort] (M00.3) | ||
+ | * [https://recull.binefa.cat/files/material/modbus/m01_3_00.zip Ús de QSerialPort] Codi minimitzat d'ús de QSerialPort (M00.4) | ||
+ | * Pràctiques noves per a fer: | ||
+ | - '''M00.1''' (prova del terminal sèrie), '''M00.2''' (instal·lació de QSerialPort), '''M00.3''' (prova de [https://doc.qt.io/qt-6/qtserialport-terminal-example.html Serial Terminal]) i '''M00.4''' (exemple minimalista d'ús de QSerialPort) | ||
+ | |||
+ | - '''M02''' (ús de [https://github.com/jordibinefa/IoT-02/tree/master/codes/python/modbus mb_IoT_00.py] per a ModBus) | ||
+ | |||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250310 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250307 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | * Per a treballar amb la versió 2 de la biblioteca ''paho-mqtt'' ([https://recull.binefa.cat/files/doc/paho_v2/ Versió descarregable]) | ||
+ | |||
+ | Obriu a un terminal: | ||
+ | python3 -m venv mqtt_env | ||
+ | source mqtt_env/bin/activate | ||
+ | pip install paho-mqtt | ||
+ | python subscript2.py | ||
+ | |||
+ | Obriu a un altre terminal: | ||
+ | source mqtt_env/bin/activate | ||
+ | python publicador2.py | ||
+ | |||
+ | * subscript2.py: | ||
+ | import paho.mqtt.client as mqtt | ||
+ | |||
+ | # Configuració del broker MQTT | ||
+ | BROKER_ADDRESS = "broker.emqx.io" | ||
+ | PORT = 1883 | ||
+ | TOPIC = "prova/mqtt" # Substitueix amb el teu tema | ||
+ | |||
+ | def on_connect(client, userdata, flags, rc, properties=None): | ||
+ | """Callback quan el client es connecta al broker.""" | ||
+ | if rc == 0: | ||
+ | print("Connectat al broker MQTT!") | ||
+ | client.subscribe(TOPIC, qos=0) # Subscriu-te al tema | ||
+ | else: | ||
+ | print(f"Connexió fallida amb codi {rc}") | ||
+ | |||
+ | def on_message(client, userdata, msg): | ||
+ | """Callback quan es rep un missatge.""" | ||
+ | print(f"Missatge rebut al tema '{msg.topic}': {msg.payload.decode()}") | ||
+ | |||
+ | def main(): | ||
+ | client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2) # Utilitza la versió 2 de l'API de callbacks | ||
+ | client.on_connect = on_connect | ||
+ | client.on_message = on_message | ||
+ | |||
+ | client.connect(BROKER_ADDRESS, PORT, 60) # Connecta't al broker | ||
+ | |||
+ | client.loop_forever() # Manté el client en bucle per rebre missatges | ||
+ | |||
+ | if __name__ == "__main__": | ||
+ | main() | ||
+ | * publicador2.py: | ||
+ | import paho.mqtt.client as mqtt | ||
+ | import time | ||
+ | |||
+ | # Configuració del broker MQTT | ||
+ | BROKER_ADDRESS = "broker.emqx.io" | ||
+ | PORT = 1883 | ||
+ | TOPIC = "prova/mqtt" # El mateix tema que el subscriptor | ||
+ | |||
+ | def on_connect(client, userdata, flags, rc, properties=None): | ||
+ | """Callback quan el client es connecta al broker.""" | ||
+ | if rc == 0: | ||
+ | print("Connectat al broker MQTT!") | ||
+ | else: | ||
+ | print(f"Connexió fallida amb codi {rc}") | ||
+ | |||
+ | def main(): | ||
+ | client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2) | ||
+ | client.on_connect = on_connect | ||
+ | |||
+ | client.connect(BROKER_ADDRESS, PORT, 60) | ||
+ | client.loop_start() # Inicia el bucle en un fil separat | ||
+ | |||
+ | try: | ||
+ | while True: | ||
+ | message = f"Missatge publicat a les {time.strftime('%H:%M:%S')}" | ||
+ | client.publish(TOPIC, message, qos=0) | ||
+ | print(f"Publicat: {message}") | ||
+ | time.sleep(5) # Publica un missatge cada 5 segons | ||
+ | except KeyboardInterrupt: | ||
+ | print("Publicació interrompuda.") | ||
+ | finally: | ||
+ | client.loop_stop() | ||
+ | client.disconnect() | ||
+ | |||
+ | if __name__ == "__main__": | ||
+ | main() | ||
+ | |||
+ | == 20250304 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | * Afegits '''A10.3''', '''A17.07''' i '''A17.08''' al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | === Desenvolupament d'una API en NodeRed. Pasarel·la '''HTTP a MQTT''' === | ||
+ | <!-- [http://formacio.things.cat:2345/mqtt?"payload=alumneDam2&topic=programador" HTTP a MQTT] --> | ||
+ | |||
+ | [[Image:Nodered20220402e00.png|center|Flux HTTP a MQTT]] | ||
+ | |||
+ | [https://www.binefa.cat/training/upcSchool/2022/20220402/httpMqtt.nodered.json Flux httpMqtt.nodered.json] | ||
+ | |||
+ | [http://vps656540.ovh.net:2222/mqtt?topic=/7C9EBDEA5BA0/ledW&&payload=0 Apagant] led blanc: | ||
+ | [[Image:Nodered20220402e01.png|center|Apagant led blancto. HTTP a MQTT]] | ||
+ | |||
+ | [http://vps656540.ovh.net:2222/mqtt?topic=/7C9EBDEA5BA0/ledW&&payload=1 Encenent] led blanc: | ||
+ | [[Image:Nodered20220402e02.png|center|Encenent led blanc. HTTP a MQTT]] | ||
+ | |||
+ | * Funció '''bridge''': | ||
+ | msg.topic = msg.req.query['topic']; | ||
+ | msg.payload = msg.req.query['payload']; | ||
+ | return msg; | ||
+ | |||
+ | * Funció '''response''': | ||
+ | msg.payload = "Tema: "+msg.req.query['topic']+", missatge: "+msg.req.query['payload']; | ||
+ | return msg; | ||
+ | |||
+ | === Captura de la resposta web === | ||
+ | '''curl "http://iot.electronics.cat:2222/mqtt2?topic=/7C9EBDEA5BA0/ledW&&payload=0"''' | ||
+ | Tema: /7C9EBDEA5BA0/ledW, missatge: 0 | ||
+ | Es pot redireccionar la resposta a un arxiu: | ||
+ | '''curl "http://iot.electronics.cat:2222/mqtt2?topic=/7C9EBDEA5BA0/ledW&&payload=0" > resposta.txt''' | ||
+ | [https://curl.se/windows/ '''curl''' per Windows] | ||
+ | === '''paho-mqtt''' i Python === | ||
+ | # pip install paho-mqtt | ||
+ | |||
+ | [https://www.emqx.com/en/blog/how-to-use-mqtt-in-python MQTT in Python with Paho Client: Beginner's Guide 2024] | ||
+ | |||
+ | A una cel·la del jupyter-lab (si no el teniu, el podeu instal·lar seguint [https://jupyter.org/install aquestes instruccions]): | ||
+ | |||
+ | import random | ||
+ | |||
+ | import paho.mqtt.subscribe as subscribe | ||
+ | import paho.mqtt.client as mqtt | ||
+ | import paho.mqtt.properties as properties | ||
+ | |||
+ | mqttc = mqtt.Client('idClient-'+str(random.randrange(100000,999999))) | ||
+ | # mqttc.username_pw_set("usuari","contrasenya"); | ||
+ | mqttc.connect("broker.emqx.io", 1883) | ||
+ | |||
+ | def on_message(clientId, userdata, message): | ||
+ | msg = str(message.payload.decode("utf-8")) | ||
+ | print('topic = ', message.topic) | ||
+ | print('payload = ', msg) | ||
+ | |||
+ | mqttc.on_message = on_message | ||
+ | mqttc.subscribe('topicName') | ||
+ | |||
+ | A una altra cel·la del jupyter-lab: | ||
+ | mqttc.loop_start() | ||
+ | |||
+ | [https://techoverflow.net/2021/12/27/how-to-set-username-password-in-paho-mqtt/ Usuari i contrasenya a MQTT emprant Paho] | ||
+ | |||
+ | * Publicació MQTT des de Paho: | ||
+ | mqttc.publish('topicName','Escola del clot') | ||
+ | |||
+ | == 20250228 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250225 == | ||
+ | [https://recull.binefa.cat/files/20250225exQtQml/ Metacognició de síntesi] | ||
+ | == 20250224 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | == 20250221 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250218 == | ||
+ | [https://recull.binefa.cat/files/20250218exIoT/ Metacognició de síntesi ('''A11''') de la part d'IoT] del 2n trimestre | ||
+ | |||
+ | == 20250217 == | ||
+ | * Afegit l'exercici '''A13.03''' que és l'examen de la part de Qt i QML dels curs passat. | ||
+ | * Afegit l'exercici '''A13.04''' que és el joc de pedra, paper i tisora. | ||
+ | * [http://extensions.snap.berkeley.edu/snap/snap.html#open:https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/snap/07_IoT-02_with_json_Broker1.xml Snap! de proves MQTT] | ||
+ | |||
+ | == 20250214 == | ||
+ | - Intel·ligència Artificial: | ||
+ | |||
+ | * [https://snap.berkeley.edu/snap/snap.html#open:https://xavierpi.com/ia/ia.xml Connexió amb Gemini] Cal una [https://aistudio.google.com/app/apikey clau d'API (API key)] ([https://ai.google.dev/gemini-api/docs/quickstart?lang=python Guia ràpida d'ús a l'API de Gemini]) | ||
+ | <!-- AIzaSyBINpQKh7Sj8WyIV-PmNfo157Pg8LQr8JY --> | ||
+ | * [https://ecraft2learn.github.io/ai/AI-Teacher-Guide/chapter-2.html Reconeixement de veu amb Snap!] ([https://ecraft2learn.github.io/ai/snap/snap.html?project=listening&editMode Accés directe al projecte amb Snap!]) | ||
+ | * [https://nihui.github.io/ncnn-webassembly-yolov5/ Yolo v5 al mòbil] | ||
+ | |||
+ | - Afegit l'exercici '''A14.9''' que tracta de desenvolupar un xat de Telegram que dialoga amb l'API de Gemini. Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250211 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250210 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250204 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250203 == | ||
+ | [https://recull.binefa.cat/files/20250203/ Codis rps20af a rps30af] | ||
+ | * [https://recull.binefa.cat/files/20250203/rps20af.zip rps20af]: Ús de SwipeView. Pàgines lliscables arrosegant-les | ||
+ | * [https://recull.binefa.cat/files/20250203/rps21af.zip rps21af]: Ús del repetidor a PaginaJoc.qml . Model numèric | ||
+ | * [https://recull.binefa.cat/files/20250203/rps22af.zip rps22af]: Ús del repetidor a PaginaJoc.qml . Model emprant cadenes | ||
+ | * [https://recull.binefa.cat/files/20250203/rps23af.zip rps23af]: Ús del repetidor a PaginaJoc.qml . Model emprant tipus múltiples | ||
+ | * [https://recull.binefa.cat/files/20250203/rps24af.zip rps24af]: Canvi de les lletres a imatges al control | ||
+ | * [https://recull.binefa.cat/files/20250203/rps25af.zip rps25af]: Nou component ControlButtons. Ús de senyals des de subcomponents | ||
+ | * [https://recull.binefa.cat/files/20250203/rps26af.zip rps26af]: Incorporació de l'aleatorietat i visualització del joc de l'usuari i de l'aplicació | ||
+ | * [https://recull.binefa.cat/files/20250203/rps27af.zip rps27af]: Nou component VistaJugada | ||
+ | * [https://recull.binefa.cat/files/20250203/rps28af.zip rps28af]: Transicions d'opacitat | ||
+ | * [https://recull.binefa.cat/files/20250203/rps29af.zip rps29af]: Transicions seqüencials | ||
+ | * [https://recull.binefa.cat/files/20250203/rps30af.zip rps30af]: Rotació de les imatges ([https://recull.binefa.cat/files/20250203/rps30af.apk rps30af.apk]) | ||
+ | |||
+ | == 20250131 == | ||
+ | * [https://recull.binefa.cat/files/20250131/rps11af_20250131.zip Codi amb SwipeView i transicions] | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250128 == | ||
+ | * Si teniu problemes de visualització d'imatges emprant l'arxiu de recursos ''.qrc'' afegiu a ''CMakeLists.txt'': | ||
+ | set(CMAKE_AUTORCC ON) | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250127 == | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250124 == | ||
+ | * [[LoRaWAN. Curs 2024-2025]] | ||
+ | * Exercicis '''A17.01''' i '''A17.02''' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A17_-_LoRa_.2B_InfluxDB_.2B_Grafana_.2B_Scada_NodeRed | recull de pràctiques]] | ||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250121 == | ||
+ | Doneu-vos d'alta a [https://www.thethingsnetwork.org/ The Things Network] | ||
+ | |||
+ | Doneu-vos d'alta a [https://botsin.space/ una instància de Mastodon que permet fer bots] | ||
+ | |||
+ | * Seguim fent els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250120 == | ||
+ | [https://grafana.com/docs/grafana/latest/setup-grafana/installation/debian/ Instal·lació de Grafana a Debian o Ubuntu] | ||
+ | |||
+ | [https://grafana.com/docs/grafana/latest/setup-grafana/installation/windows/ Instal·lació de Grafana a Windows] | ||
+ | |||
+ | * [[Ús de Grafana llegint dades de MariaDB]] | ||
+ | |||
+ | * Feu l'exercici '''A14.5''' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A14.5_-_Grafana | recull de pràctiques]]. | ||
+ | |||
+ | * Si no l'heu finalitzat, acabeu l'exercici '''A14.8''' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A14.8_-_MariaDB | recull de pràctiques]] | ||
+ | |||
+ | * Seguiu fent l'exercici '''A08.04''' del joc de ''Pedra, Paper i Tisora'' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A08.04 | recull de pràctiques]]. | ||
+ | |||
+ | * Feu els exercicis '''A17.05''' i '''A17.06''' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A17.05_-_Prova_b.C3.A0sica_d.27.C3.BAs_del_NodeRed_injectant_dades_a_MariaDB_i_visualitzant-les_a_Grafana | recull de pràctiques]] que us fan visualitzar a Grafana les dades emmagatzemades a MariaDB. | ||
+ | |||
+ | == 20250118 == | ||
+ | * Dubtes | ||
+ | - Part Qt/QML: | ||
+ | * Aquests dos trossos de codi els podeu trobar dins a [https://recull.binefa.cat/files/20250117/rps06.zip rps06.zip]. | ||
+ | property int '''angleLletra''': 0 | ||
+ | '''transform: Rotation''' { | ||
+ | axis { | ||
+ | x: 0 | ||
+ | y: 1 | ||
+ | z: 0 | ||
+ | } | ||
+ | '''origin.x''': rect00.width/2 | ||
+ | '''origin.y''': rect00.height/2 | ||
+ | angle: rect00.'''angleLletra''' | ||
+ | } | ||
+ | |||
+ | '''Transition''' { | ||
+ | from: "*" | ||
+ | to: "usuariGuanya" | ||
+ | //reversible: true | ||
+ | '''ParallelAnimation'''{ | ||
+ | '''ColorAnimation'''{ | ||
+ | to: "lime" | ||
+ | duration: 500 | ||
+ | } | ||
+ | '''NumberAnimation''' { | ||
+ | target: rect00 | ||
+ | '''property''': "angleLletra" | ||
+ | duration: 500 | ||
+ | // loops: Animation.Infinite | ||
+ | easing.type: Easing.InOutQuad | ||
+ | // easing.type: Easing.InOutBounce | ||
+ | } | ||
+ | } | ||
+ | - Part IoT: | ||
+ | |||
+ | [[Ús de MariaDB per emmagatzemar dades de la Internet de les Coses]] | ||
+ | |||
+ | [[Ús de la base de dades MariaDB des de NodeRED]] | ||
+ | |||
+ | * Feu l'exercici '''A14.8''' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20250114 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim amb la [[Connexió del frontal en QML amb el rerefons en C++]] (''Q_PROPERTY'' i ''Q_INVOKABLE'') | ||
+ | |||
+ | * Seguim amb la implementació del joc pedra, paper o tisora (RPS) en QML. | ||
+ | |||
+ | == 20250113 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim amb la [[Connexió del frontal en QML amb el rerefons en C++]] (''Q_PROPERTY'' i ''Q_INVOKABLE'') | ||
+ | |||
+ | * Implementació del joc pedra, paper o tisora (RPS) en QML. | ||
+ | |||
+ | == 20250110 == | ||
+ | * Dubtes | ||
+ | |||
+ | * [[Connexió del frontal en QML amb el rerefons en C++]] (''Q_PROPERTY'' i ''Q_INVOKABLE'') | ||
+ | |||
+ | [https://recull.binefa.cat/files/20250110/ Codis explicats el dia d'avui] (Exemple de rerefons emprant Q_INVOKABLE) | ||
+ | |||
+ | == 20241220 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim fent una ullada als [https://recull.binefa.cat/files/20241217/ codis QML amb estats i animacions de color] | ||
+ | |||
+ | * Documentació QML: [https://www.qt.io/product/qt6/qml-book Qt6 QML Book] ([https://github.com/qmlbook/qt6book Codis del Qt6 QML Book al GitHub]) | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241217 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Fem una ullada als [https://recull.binefa.cat/files/20241217/ codis QML amb estats i animacions de color] | ||
+ | |||
+ | * Documentació QML: [https://www.qt.io/product/qt6/qml-book Qt6 QML Book] ([https://github.com/qmlbook/qt6book Codis del Qt6 QML Book al GitHub]) | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241216 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Fem córrer QML sobre Android una aplicació emprant MQTT [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A13.02 | pràctica '''A13.02''' del recull de pràctiques]] | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241213 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Fem córrer QML sobre Android seguint els suggeriments de la [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A13.01 | pràctica '''A13.01''' del recull de pràctiques]] | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241210 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241209 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | * Resposta a la pregunta de n'Aroca: [[Màquina virtual Android per a fer-la servir per a executar codis QML des de QtCreator]] | ||
+ | |||
+ | * Part IoT: Pràctica [[Recull de pràctiques de 2n de DAM. Curs_2024-2025#A14.7 - UserLand | '''A14.7''' - UserLand]] | ||
+ | |||
+ | == 20241202 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Feu els exercicis pendents del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241129 == | ||
+ | * Dubtes | ||
+ | |||
+ | * [https://recull.binefa.cat/files/20241129/ Exemples al recull des de qml01 a qml05] | ||
+ | |||
+ | * Feu els exercicis '''A08.01''', '''A08.02''' i '''A08.03''' del [[Recull de pràctiques de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | === '''Telegram''' === | ||
+ | [https://wiki.binefa.cat/index.php?title=Bot_de_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 | ||
+ | |||
+ | [https://recull.binefa.cat/files/doc/bots 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 de 2n de DAM. Curs 2024-2025 | recull de pràctiques]] | ||
+ | |||
+ | == 20241126 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim la instal·lació per a fer servir PureQML | ||
+ | |||
+ | * [https://www.qt.io/product/qt6/qml-book/ch04-qmlstart-components Àrea del ratolí] | ||
+ | |||
+ | * [https://www.qt.io/product/qt6/qml-book/ch04-qmlstart-input Esdeveniments de tecles] | ||
+ | |||
+ | == 20241125 - QML == | ||
+ | [[Introducció al QML. Curs 2023-2024]] | ||
+ | |||
+ | Activitats '''A08.01''', '''A08.02''' i '''A08.03''' del [[Recull de pràctiques de 2n de DAM._Curs_2024-2025 | recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | === PureQML === | ||
+ | [https://pureqml.com/ 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_2024-2025 | recull de pràctiques de 2n de DAM. Curs_2024-2025]] | ||
+ | == 20241125 - NodeRed == | ||
+ | [https://recull.binefa.cat/files/programes_i_apps/nodeRed dynamicMqttTopic.json] Temes dinàmics a MQTT | ||
+ | |||
+ | == 20241119 Examen 1r T == | ||
+ | [https://recull.binefa.cat/files/20241119ex/ Examen 1r trimestre] | ||
+ | |||
+ | == 20241118 == | ||
+ | * Dubtes del darrer dia abans de l'examen. | ||
+ | |||
+ | == 20241115 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim fent pràctiques pendents | ||
+ | == 20241112 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim explicant els codis del dia anterior: | ||
+ | |||
+ | [https://wokwi.com/projects/395171178315723777 pyEsp32Mqtt_00] | ||
+ | |||
+ | - Multitasca | ||
+ | |||
+ | [https://github.com/jczic/MicroWorkers MicroWorkers] Tasques en MicroPython | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS FreeRTOS] Tasques en C a sistemes encastats. ([https://freertos.org/ Pàgina oficial de FreeRTOS]) | ||
+ | |||
+ | - Exemples de multitasca | ||
+ | |||
+ | [https://wokwi.com/projects/389912602887440385 uPython_uWorkers_00] | ||
+ | |||
+ | [https://wokwi.com/projects/391818722528195585 fils00] | ||
+ | |||
+ | [https://wokwi.com/projects/389915605944256513 esp32_freeRTOS_00] | ||
+ | |||
+ | - Exercicis de multitasca | ||
+ | |||
+ | La setmana passada ja es van afegir A09.01 i A09.02 (FreeRTOS i MicroWorkers) al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Seguim fent l'[https://recull.binefa.cat/files/material/examensAntics/20201201_exQt_IoT_01/ enunciat A12.04] al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241111 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Amb l'objectiu de practicar per a l'examen de la setmana vinent, s'ha afegit l'[https://recull.binefa.cat/files/material/examensAntics/20201201_exQt_IoT_01/ enunciat A12.04] al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Part IoT | ||
+ | |||
+ | - [[Configuració de l'MQTT-Dash]] ([https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=ca&pli=1 MQTT-Dash a Google Play], [https://recull.binefa.cat/files/programes_i_apps/mqtt-dash/ apk baixada d'APKPure i apkcombo]) | ||
+ | |||
+ | == 20241108 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim amb el [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | == 20241105 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim amb el [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241104 == | ||
+ | S'ha afegit l'[https://recull.binefa.cat/files/material/examensAntics/20220304_m07uf1_qt_exOrd.zip enunciat A12.03] al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | Exercici '''A12.03'''. (Heu de desar a la carpeta compartida un document '''2425-DAM-''A12.03''-1rCognom2nCognomNom.pdf''' amb les solucions explicades i un arxiu '''2425-DAM-''A12.03''-1rCognom2nCognomNom.zip''' amb els codis comprimits, sense el '''.pro.user''' si ho feu amb ''qmake'' o el '''.txt.user''' si ho feu amb ''CMake''). | ||
+ | |||
+ | * Part IoT | ||
+ | |||
+ | [https://wokwi.com/projects/344353328302391891 uPython_00_blinky] | ||
+ | |||
+ | [https://wokwi.com/projects/344355775870665299 uPython_01_servo] | ||
+ | |||
+ | [https://wokwi.com/projects/344356523406787156 uPython_02_pull-up] | ||
+ | |||
+ | [https://wokwi.com/projects/344357370084721234 uPython_03_ldr] | ||
+ | |||
+ | [https://wokwi.com/projects/344358143955829331 uPython_04_ultrasonic] | ||
+ | |||
+ | [https://wokwi.com/projects/344359199764906579 uPython_05_acceleration] | ||
+ | |||
+ | [https://wokwi.com/projects/344360822403760724 uPython_06_temperature] | ||
+ | |||
+ | [https://wokwi.com/projects/341892004923310676 uPython_mqtt_00] | ||
+ | |||
+ | [https://wokwi.com/projects/350955865540395602 uPython_mqtt_01] | ||
+ | |||
+ | [https://wokwi.com/projects/395171178315723777 pyEsp32Mqtt_00] | ||
+ | |||
+ | - Multitasca | ||
+ | |||
+ | [https://github.com/jczic/MicroWorkers MicroWorkers] Tasques en MicroPython | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS FreeRTOS] Tasques en C a sistemes encastats. ([https://freertos.org/ Pàgina oficial de FreeRTOS]) | ||
+ | |||
+ | - Exemples de multitasca | ||
+ | |||
+ | [https://wokwi.com/projects/389912602887440385 uPython_uWorkers_00] | ||
+ | |||
+ | [https://wokwi.com/projects/391818722528195585 fils00] | ||
+ | |||
+ | [https://wokwi.com/projects/389915605944256513 esp32_freeRTOS_00] | ||
+ | |||
+ | -Exercicis de multitasca | ||
+ | |||
+ | S'ha afegit A09.01 i A09.02 (FreeRTOS i MicroWorkers) al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241029 == | ||
+ | * Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Instal·lació local de mosquitto ('''A07.05''' - Instal·lació del servei mosquitto de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]]) | ||
+ | |||
+ | * Introducció al MicroPython ([https://www.things.cat/index.php/P%C3%A0gina_principal#MicroPython_2 Programació en MicroPython], [https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome Micropython and the Internet of Things], [https://provisional.binefa.com/index.php/Placa_IoT-02#Instal.C2.B7laci.C3.B3_de_MicroPython Micropython a la placa IoT-02] i | ||
+ | [https://docs.micropython.org/en/latest/esp32/quickref.html#pins-and-gpio Referència ràpida sobre MicroPython a l'ESP32]) | ||
+ | |||
+ | * '''A07.07''' - Introducció al micropython al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Exemple [https://wokwi.com/projects/389912602887440385 MicroWorkers a Wokwi] | ||
+ | |||
+ | == 20241028 == | ||
+ | * Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241025 == | ||
+ | * Ús de [https://recull.binefa.cat/files/20241025/ QPixmap, QPainter, QIcon, QTimer i QJsonObject] | ||
+ | |||
+ | * Afegit exercici A12.02. Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241022 == | ||
+ | * Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241021 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Acabem A06.04 | ||
+ | |||
+ | * Comencem a resoldre l'[https://recull.binefa.cat/files/doc/projecteGlobal/activitats/A06.02.zip enunciat A06.02] | ||
+ | |||
+ | * Hora IoT: Feu [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A12.01.2 - ginyMqtt amb CMake | A12.01.2 - ginyMqtt amb CMake]] | ||
+ | |||
+ | == 20241018 == | ||
+ | * Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241015 == | ||
+ | * Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241014 == | ||
+ | * [https://recull.binefa.cat/files/20241014/ Exemples de codi per a fer servir diàlegs en Qt] | ||
+ | |||
+ | * Acabem [[Recull de pràctiques de 2n de DAM. Curs 2023-2024#A06.04 - Interfícies gràfiques | A06.04 - Interfícies gràfiques]] | ||
+ | |||
+ | * Nou exercici: [[Recull de pràctiques de 2n de DAM. Curs 2023-2024#A07.08 - Prova de QtMQtt a la placa IoT-02 | A07.08 - Prova de QtMQtt a la placa IoT-02]] | ||
+ | |||
+ | * Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241011 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241008 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241007 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | void Ex00::on_btAleat_clicked() | ||
+ | { | ||
+ | ui->lbText->setText(tr("%1").arg(1+rand()%6)); | ||
+ | } | ||
+ | |||
+ | == 20241004 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | == 20241001 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20240930 == | ||
+ | [[Uso del NodeRED (2024)]] | ||
+ | |||
+ | [[Autenticació d'accés a NodeRED]] | ||
+ | |||
+ | [[Ús de la base de dades MariaDB des de NodeRED]] | ||
+ | |||
+ | [[Transmissió d'un número real de tipus IEEE-754 (4 bytes) i llur recuperació a NodeRED]] | ||
+ | |||
+ | == 20240927 == | ||
+ | [https://recull.binefa.cat/files/20240927/ Recull del dia 20240927] usuari: dam | contrasenya: dam2425 | ||
+ | |||
+ | * Exercici [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed | A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed]] del recull de pràctiques | ||
+ | |||
+ | * Exercici '''a0601a''' de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A06.01 - Ginys encastats | 06.01 - Ginys encastats]] del recull de pràctiques | ||
+ | |||
+ | * Per a fer servir el ''CMake'' cal editar l'arxiu ''CMakeLists.txt''. En aquest exemple, prenent com a base el projecte ''pr20240927_00'' fet amb qmake, s'ha fet un nou projecte anomenat ''pr20240927_00_cmake'' amb una classe base anomenada ''Matrioixca''. Un cop fet es tanca el QtCreator i es copien els sis arxius .cpp, .h i .ui a la carpeta del nou projecte (els matrioixca.* seran sobreescrits) i editeu l'arxiu ''CMakeLists.txt'' afegint les línies en negreta: | ||
+ | set(PROJECT_SOURCES | ||
+ | main.cpp | ||
+ | matrioixca.cpp | ||
+ | matrioixca.h | ||
+ | matrioixca.ui | ||
+ | '''giny01.cpp''' | ||
+ | '''giny01.h''' | ||
+ | '''giny01.ui''' | ||
+ | '''ginylcd.cpp''' | ||
+ | '''ginylcd.h''' | ||
+ | '''ginylcd.ui''' | ||
+ | ) | ||
+ | |||
+ | == 20240923 == | ||
+ | Connectem la placa IoT-02 mitjançant Snap! i NodeRed. | ||
+ | |||
+ | [https://recull.binefa.cat/files/programes_i_apps/codisArduinoIDE/IoT-02_mqtt_sync_clot_2024.zip Microprogramari per a treballar dins l'Escola del Clot] | ||
+ | |||
+ | Canvieu el ''broker1'' pel '''broker2''' a l'[http://extensions.snap.berkeley.edu/snap/snap.html#open:https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/snap/07_IoT-02_with_json_Broker1.xml accés directe a 07_IoT-02_with_json_Broker1.xml][https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/snap/07_IoT-02_with_json_Broker1.xml Codi en Snap! incorporant l'ús de JSON] i [https://www.binefa.cat/training/iot02/IoT-02_mqtt_json_upcSchool_broker1.zip microprogramari per a gestionar, també, l'ús de JSON a la placa IoT-02]. [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_mqtt_sync_upcSchool_broker1 Firmware IoT-02_mqtt_json_upcSchool_broker1 en GitHub] | ||
+ | |||
+ | == 20240920 == | ||
+ | //#include "esp_wpa2.h" //wpa2 library for connections to Enterprise networks | ||
+ | '''#include "esp_eap_client.h"''' // v3 | ||
+ | |||
== 20240917 == | == 20240917 == | ||
'''Heu de dur un cable microusb per a connectar a l'ordinador o una font d'alimentació microusb'''! | '''Heu de dur un cable microusb per a connectar a l'ordinador o una font d'alimentació microusb'''! | ||
+ | |||
+ | [[Placa IoT-02]] | ||
== 20240916 (2h + 1h) == | == 20240916 (2h + 1h) == | ||
− | [https://recull.binefa.cat/files/ | + | [https://recull.binefa.cat/files/20240916/ Recull del dia 20240916] usuari: dam | contrasenya: dam2425 |
+ | === Distribució de M07UF1 i M13 al curs 2024-2025 === | ||
+ | [[Distribució de M07UF1 i M13 al curs 2024-2025 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 [https://www.qt.io/download-open-source 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). | ||
+ | |||
+ | [https://www.binefa.cat/curs2022-2023/projecteGlobal/dam2223/doc/projecteGlobal/activitats/a06/ 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 === | ||
+ | * [[Placa IoT-02]] | ||
+ | |||
+ | * NodeRED | ||
+ | |||
+ | [https://nodejs.org/en/download/ Instal·lació de Node.js] [https://tecadmin.net/install-latest-nodejs-npm-on-debian/ Guia d'instal·lació de node i npm] | ||
+ | |||
+ | [https://nodered.org/docs/faq/node-versions 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 | ||
+ | |||
+ | [https://www.binefa.cat/curs2022-2023/projecteGlobal/dam2223/doc/projecteGlobal/activitats/a07/ Activitat 7] | ||
+ | ==== Credencials IoT ==== | ||
+ | #define EAP_ANONYMOUS_IDENTITY "CL-Internet_de_les_coses" | ||
+ | #define EAP_IDENTITY "CL-Internet_de_les_coses" | ||
+ | #define EAP_PASSWORD "CLioT2022_" | ||
+ | #define EAP_USERNAME "CL-Internet_de_les_coses" | ||
+ | |||
+ | const char* ssid = "IOTJE"; | ||
+ | |||
+ | == 20241119 Examen 1r T == | ||
+ | [https://recull.binefa.cat/files/20241119ex/ Examen 1r trimestre] | ||
+ | |||
+ | == 20241118 == | ||
+ | * Dubtes del darrer dia abans de l'examen. | ||
+ | |||
+ | == 20241115 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim fent pràctiques pendents | ||
+ | == 20241112 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim explicant els codis del dia anterior: | ||
+ | |||
+ | [https://wokwi.com/projects/395171178315723777 pyEsp32Mqtt_00] | ||
+ | |||
+ | - Multitasca | ||
+ | |||
+ | [https://github.com/jczic/MicroWorkers MicroWorkers] Tasques en MicroPython | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS FreeRTOS] Tasques en C a sistemes encastats. ([https://freertos.org/ Pàgina oficial de FreeRTOS]) | ||
+ | |||
+ | - Exemples de multitasca | ||
+ | |||
+ | [https://wokwi.com/projects/389912602887440385 uPython_uWorkers_00] | ||
+ | |||
+ | [https://wokwi.com/projects/391818722528195585 fils00] | ||
+ | |||
+ | [https://wokwi.com/projects/389915605944256513 esp32_freeRTOS_00] | ||
+ | |||
+ | - Exercicis de multitasca | ||
+ | |||
+ | La setmana passada ja es van afegir A09.01 i A09.02 (FreeRTOS i MicroWorkers) al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Seguim fent l'[https://recull.binefa.cat/files/material/examensAntics/20201201_exQt_IoT_01/ enunciat A12.04] al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241111 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Amb l'objectiu de practicar per a l'examen de la setmana vinent, s'ha afegit l'[https://recull.binefa.cat/files/material/examensAntics/20201201_exQt_IoT_01/ enunciat A12.04] al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Part IoT | ||
+ | |||
+ | - [[Configuració de l'MQTT-Dash]] ([https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=ca&pli=1 MQTT-Dash a Google Play], [https://recull.binefa.cat/files/programes_i_apps/mqtt-dash/ apk baixada d'APKPure i apkcombo]) | ||
+ | |||
+ | == 20241108 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim amb el [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | == 20241105 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Seguim amb el [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241104 == | ||
+ | S'ha afegit l'[https://recull.binefa.cat/files/material/examensAntics/20220304_m07uf1_qt_exOrd.zip enunciat A12.03] al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | Exercici '''A12.03'''. (Heu de desar a la carpeta compartida un document '''2425-DAM-''A12.03''-1rCognom2nCognomNom.pdf''' amb les solucions explicades i un arxiu '''2425-DAM-''A12.03''-1rCognom2nCognomNom.zip''' amb els codis comprimits, sense el '''.pro.user''' si ho feu amb ''qmake'' o el '''.txt.user''' si ho feu amb ''CMake''). | ||
+ | |||
+ | * Part IoT | ||
+ | |||
+ | [https://wokwi.com/projects/344353328302391891 uPython_00_blinky] | ||
+ | |||
+ | [https://wokwi.com/projects/344355775870665299 uPython_01_servo] | ||
+ | |||
+ | [https://wokwi.com/projects/344356523406787156 uPython_02_pull-up] | ||
+ | |||
+ | [https://wokwi.com/projects/344357370084721234 uPython_03_ldr] | ||
+ | |||
+ | [https://wokwi.com/projects/344358143955829331 uPython_04_ultrasonic] | ||
+ | [https://wokwi.com/projects/344359199764906579 uPython_05_acceleration] | ||
+ | |||
+ | [https://wokwi.com/projects/344360822403760724 uPython_06_temperature] | ||
+ | |||
+ | [https://wokwi.com/projects/341892004923310676 uPython_mqtt_00] | ||
+ | |||
+ | [https://wokwi.com/projects/350955865540395602 uPython_mqtt_01] | ||
+ | |||
+ | [https://wokwi.com/projects/395171178315723777 pyEsp32Mqtt_00] | ||
+ | |||
+ | - Multitasca | ||
+ | |||
+ | [https://github.com/jczic/MicroWorkers MicroWorkers] Tasques en MicroPython | ||
+ | |||
+ | [https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS FreeRTOS] Tasques en C a sistemes encastats. ([https://freertos.org/ Pàgina oficial de FreeRTOS]) | ||
+ | |||
+ | - Exemples de multitasca | ||
+ | |||
+ | [https://wokwi.com/projects/389912602887440385 uPython_uWorkers_00] | ||
+ | |||
+ | [https://wokwi.com/projects/391818722528195585 fils00] | ||
+ | |||
+ | [https://wokwi.com/projects/389915605944256513 esp32_freeRTOS_00] | ||
+ | |||
+ | -Exercicis de multitasca | ||
+ | |||
+ | S'ha afegit A09.01 i A09.02 (FreeRTOS i MicroWorkers) al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241029 == | ||
+ | * Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Instal·lació local de mosquitto ('''A07.05''' - Instal·lació del servei mosquitto de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]]) | ||
+ | |||
+ | * Introducció al MicroPython ([https://www.things.cat/index.php/P%C3%A0gina_principal#MicroPython_2 Programació en MicroPython], [https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome Micropython and the Internet of Things], [https://provisional.binefa.com/index.php/Placa_IoT-02#Instal.C2.B7laci.C3.B3_de_MicroPython Micropython a la placa IoT-02] i | ||
+ | [https://docs.micropython.org/en/latest/esp32/quickref.html#pins-and-gpio Referència ràpida sobre MicroPython a l'ESP32]) | ||
+ | |||
+ | * '''A07.07''' - Introducció al micropython al [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | * Exemple [https://wokwi.com/projects/389912602887440385 MicroWorkers a Wokwi] | ||
+ | |||
+ | == 20241028 == | ||
+ | * Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241025 == | ||
+ | * Ús de [https://recull.binefa.cat/files/20241025/ QPixmap, QPainter, QIcon, QTimer i QJsonObject] | ||
+ | |||
+ | * Afegit exercici A12.02. Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241022 == | ||
+ | * Seguim fent els exercicis pendents de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241021 == | ||
+ | * Dubtes | ||
+ | |||
+ | * Acabem A06.04 | ||
+ | |||
+ | * Comencem a resoldre l'[https://recull.binefa.cat/files/doc/projecteGlobal/activitats/A06.02.zip enunciat A06.02] | ||
+ | |||
+ | * Hora IoT: Feu [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A12.01.2 - ginyMqtt amb CMake | A12.01.2 - ginyMqtt amb CMake]] | ||
+ | |||
+ | == 20241018 == | ||
+ | * Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241015 == | ||
+ | * Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241014 == | ||
+ | * [https://recull.binefa.cat/files/20241014/ Exemples de codi per a fer servir diàlegs en Qt] | ||
+ | |||
+ | * Acabem [[Recull de pràctiques de 2n de DAM. Curs 2023-2024#A06.04 - Interfícies gràfiques | A06.04 - Interfícies gràfiques]] | ||
+ | |||
+ | * Nou exercici: [[Recull de pràctiques de 2n de DAM. Curs 2023-2024#A07.08 - Prova de QtMQtt a la placa IoT-02 | A07.08 - Prova de QtMQtt a la placa IoT-02]] | ||
+ | |||
+ | * Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241011 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241008 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20241007 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | void Ex00::on_btAleat_clicked() | ||
+ | { | ||
+ | ui->lbText->setText(tr("%1").arg(1+rand()%6)); | ||
+ | } | ||
+ | |||
+ | == 20241004 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | == 20241001 == | ||
+ | Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025]] | ||
+ | |||
+ | == 20240930 == | ||
+ | [[Uso del NodeRED (2024)]] | ||
+ | |||
+ | [[Autenticació d'accés a NodeRED]] | ||
+ | |||
+ | [[Ús de la base de dades MariaDB des de NodeRED]] | ||
+ | |||
+ | [[Transmissió d'un número real de tipus IEEE-754 (4 bytes) i llur recuperació a NodeRED]] | ||
+ | |||
+ | == 20240927 == | ||
+ | [https://recull.binefa.cat/files/20240927/ Recull del dia 20240927] usuari: dam | contrasenya: dam2425 | ||
+ | |||
+ | * Exercici [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed | A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed]] del recull de pràctiques | ||
+ | |||
+ | * Exercici '''a0601a''' de [[Recull de pràctiques de 2n de DAM. Curs 2024-2025#A06.01 - Ginys encastats | 06.01 - Ginys encastats]] del recull de pràctiques | ||
+ | |||
+ | * Per a fer servir el ''CMake'' cal editar l'arxiu ''CMakeLists.txt''. En aquest exemple, prenent com a base el projecte ''pr20240927_00'' fet amb qmake, s'ha fet un nou projecte anomenat ''pr20240927_00_cmake'' amb una classe base anomenada ''Matrioixca''. Un cop fet es tanca el QtCreator i es copien els sis arxius .cpp, .h i .ui a la carpeta del nou projecte (els matrioixca.* seran sobreescrits) i editeu l'arxiu ''CMakeLists.txt'' afegint les línies en negreta: | ||
+ | set(PROJECT_SOURCES | ||
+ | main.cpp | ||
+ | matrioixca.cpp | ||
+ | matrioixca.h | ||
+ | matrioixca.ui | ||
+ | '''giny01.cpp''' | ||
+ | '''giny01.h''' | ||
+ | '''giny01.ui''' | ||
+ | '''ginylcd.cpp''' | ||
+ | '''ginylcd.h''' | ||
+ | '''ginylcd.ui''' | ||
+ | ) | ||
+ | |||
+ | == 20240923 == | ||
+ | Connectem la placa IoT-02 mitjançant Snap! i NodeRed. | ||
+ | |||
+ | [https://recull.binefa.cat/files/programes_i_apps/codisArduinoIDE/IoT-02_mqtt_sync_clot_2024.zip Microprogramari per a treballar dins l'Escola del Clot] | ||
+ | |||
+ | Canvieu el ''broker1'' pel '''broker2''' a l'[http://extensions.snap.berkeley.edu/snap/snap.html#open:https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/snap/07_IoT-02_with_json_Broker1.xml accés directe a 07_IoT-02_with_json_Broker1.xml][https://raw.githubusercontent.com/jordibinefa/IoT-02/master/codes/snap/07_IoT-02_with_json_Broker1.xml Codi en Snap! incorporant l'ús de JSON] i [https://www.binefa.cat/training/iot02/IoT-02_mqtt_json_upcSchool_broker1.zip microprogramari per a gestionar, també, l'ús de JSON a la placa IoT-02]. [https://github.com/jordibinefa/IoT-02/tree/master/codes/IoT-02_mqtt_sync_upcSchool_broker1 Firmware IoT-02_mqtt_json_upcSchool_broker1 en GitHub] | ||
+ | |||
+ | == 20240920 == | ||
+ | //#include "esp_wpa2.h" //wpa2 library for connections to Enterprise networks | ||
+ | '''#include "esp_eap_client.h"''' // v3 | ||
+ | |||
+ | == 20240917 == | ||
+ | '''Heu de dur un cable microusb per a connectar a l'ordinador o una font d'alimentació microusb'''! | ||
+ | |||
+ | [[Placa IoT-02]] | ||
+ | |||
+ | == 20240916 (2h + 1h) == | ||
[https://recull.binefa.cat/files/20240916/ Recull del dia 20240916] usuari: dam | contrasenya: dam2425 | [https://recull.binefa.cat/files/20240916/ Recull del dia 20240916] usuari: dam | contrasenya: dam2425 | ||
=== Distribució de M07UF1 i M13 al curs 2024-2025 === | === Distribució de M07UF1 i M13 al curs 2024-2025 === | ||
− | |||
− | |||
[[Distribució de M07UF1 i M13 al curs 2024-2025 de 2n de DAM]] | [[Distribució de M07UF1 i M13 al curs 2024-2025 de 2n de DAM]] | ||
=== Qt === | === Qt === | ||
Línia 63: | Línia 1.029: | ||
[https://www.binefa.cat/curs2022-2023/projecteGlobal/dam2223/doc/projecteGlobal/activitats/a07/ Activitat 7] | [https://www.binefa.cat/curs2022-2023/projecteGlobal/dam2223/doc/projecteGlobal/activitats/a07/ Activitat 7] | ||
+ | ==== Credencials IoT ==== | ||
+ | #define EAP_ANONYMOUS_IDENTITY "CL-Internet_de_les_coses" | ||
+ | #define EAP_IDENTITY "CL-Internet_de_les_coses" | ||
+ | #define EAP_PASSWORD "CLioT2022_" | ||
+ | #define EAP_USERNAME "CL-Internet_de_les_coses" | ||
+ | |||
+ | const char* ssid = "IOTJE"; | ||
= Repositori de codis fet a classe durant el curs = | = Repositori de codis fet a classe durant el curs = | ||
[https://recull.binefa.cat/files/ Codis fets a les classes de 2n de DAM] usuari: dam | contrasenya: dam2425 | [https://recull.binefa.cat/files/ Codis fets a les classes de 2n de DAM] usuari: dam | contrasenya: dam2425 | ||
= Documentació = | = Documentació = | ||
+ | [https://drive.google.com/drive/folders/1Wo6ncP4mHNnmrsW6D3Y5KpjeXyuDSR1C Curs2024-2025] | ||
+ | [https://docs.google.com/spreadsheets/d/16DA_uFnKB23bx7VaH3bfJ4qMuuffrgRh/edit?gid=1882428378#gid=1882428378 Eina d'avaluació GP1] | ||
+ | [https://drive.google.com/drive/u/0/folders/1YPZVFpC3KCQK9tVXpSO6wuzEHjvPaIv2 Curs 2024-2025 - Departament] | ||
+ | |||
[https://drive.google.com/drive/folders/1P4FlwnGsX4qXIXBJJL9vS8KK1R-OUeZM Drive curs 2023-2024] ([https://web2.alexiaedu.com/ACWeb/paginas/Home/HomeMetro.aspx Alèxia], [https://sac.net.fje.edu/v1.0/#/home/ SAC]). [https://drive.google.com/drive/folders/1dcGDwZBWcG3utW6OxXBkQey7oHa_3ZNx Eina d'avaluació GP1] | [https://drive.google.com/drive/folders/1P4FlwnGsX4qXIXBJJL9vS8KK1R-OUeZM Drive curs 2023-2024] ([https://web2.alexiaedu.com/ACWeb/paginas/Home/HomeMetro.aspx Alèxia], [https://sac.net.fje.edu/v1.0/#/home/ SAC]). [https://drive.google.com/drive/folders/1dcGDwZBWcG3utW6OxXBkQey7oHa_3ZNx Eina d'avaluació GP1] | ||
Línia 102: | Línia 1.079: | ||
=== Qt for Android === | === Qt for Android === | ||
+ | [https://doc.qt.io/qt-6/android.html Qt for Android] | ||
+ | |||
[https://doc.qt.io/qt-6/android-getting-started.html Getting Started with Qt for Android] | [https://doc.qt.io/qt-6/android-getting-started.html Getting Started with Qt for Android] | ||
Línia 124: | Línia 1.103: | ||
sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-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 | sudo apt purge ibus | ||
+ | === Vídeos externs per aprendre QML === | ||
+ | (Gentilesa d'en Raül Gil García) | ||
+ | * [https://www.youtube.com/playlist?list=PL54fdmMKYUJvahGcI0cZCwrNesEsNd42V (10) Tutorial QML - YouTube] | ||
+ | * [https://www.youtube.com/playlist?list=PLxkHKJE0D3pCkRIFzEfpSly687BUjxUzk qmlscene] | ||
+ | * [https://www.youtube.com/@techcoderhub/videos Tesla Model 3 Dashboard with Advanced Map Integration and Seamless Music Control Using QT QML] | ||
== IoT == | == IoT == | ||
Línia 140: | Línia 1.124: | ||
[http://silanus.fr/sin/?p=1194 MQTT avec Qt] | [http://silanus.fr/sin/?p=1194 MQTT avec Qt] | ||
+ | [[Introducció al testing]] | ||
=== Placa IoT-02 === | === Placa IoT-02 === | ||
[[Placa IoT-02]] | [[Placa IoT-02]] |
Revisió de 13:15, 29 abr 2025
Quan tingueu les credencials d'accés a la NET heu de compartir una carpeta amb aquest nom: 2425-DAM-1rCognom2nCognomNom (Per exemple, si el vostre nom és Xavier López Pujol --> 2425-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 2024-2025
Contingut
- 1 Enllaços ràpids
- 2 Algunes classes
- 2.1 20250429
- 2.2 20250428
- 2.3 20250425
- 2.4 20250422 - Projecte final
- 2.5 20250411
- 2.6 20250408 - Examen 3r T
- 2.7 20250407
- 2.8 20250404
- 2.9 20250401
- 2.10 20250331
- 2.11 20250328
- 2.12 20250325
- 2.13 20250324
- 2.14 20250321
- 2.15 20250318
- 2.16 20250317
- 2.17 20250314
- 2.18 20250310
- 2.19 20250307
- 2.20 20250304
- 2.21 20250228
- 2.22 20250225
- 2.23 20250224
- 2.24 20250221
- 2.25 20250218
- 2.26 20250217
- 2.27 20250214
- 2.28 20250211
- 2.29 20250210
- 2.30 20250204
- 2.31 20250203
- 2.32 20250131
- 2.33 20250128
- 2.34 20250127
- 2.35 20250124
- 2.36 20250121
- 2.37 20250120
- 2.38 20250118
- 2.39 20250114
- 2.40 20250113
- 2.41 20250110
- 2.42 20241220
- 2.43 20241217
- 2.44 20241216
- 2.45 20241213
- 2.46 20241210
- 2.47 20241209
- 2.48 20241202
- 2.49 20241129
- 2.50 20241126
- 2.51 20241125 - QML
- 2.52 20241125 - NodeRed
- 2.53 20241119 Examen 1r T
- 2.54 20241118
- 2.55 20241115
- 2.56 20241112
- 2.57 20241111
- 2.58 20241108
- 2.59 20241105
- 2.60 20241104
- 2.61 20241029
- 2.62 20241028
- 2.63 20241025
- 2.64 20241022
- 2.65 20241021
- 2.66 20241018
- 2.67 20241015
- 2.68 20241014
- 2.69 20241011
- 2.70 20241008
- 2.71 20241007
- 2.72 20241004
- 2.73 20241001
- 2.74 20240930
- 2.75 20240927
- 2.76 20240923
- 2.77 20240920
- 2.78 20240917
- 2.79 20240916 (2h + 1h)
- 2.80 20241119 Examen 1r T
- 2.81 20241118
- 2.82 20241115
- 2.83 20241112
- 2.84 20241111
- 2.85 20241108
- 2.86 20241105
- 2.87 20241104
- 2.88 20241029
- 2.89 20241028
- 2.90 20241025
- 2.91 20241022
- 2.92 20241021
- 2.93 20241018
- 2.94 20241015
- 2.95 20241014
- 2.96 20241011
- 2.97 20241008
- 2.98 20241007
- 2.99 20241004
- 2.100 20241001
- 2.101 20240930
- 2.102 20240927
- 2.103 20240923
- 2.104 20240920
- 2.105 20240917
- 2.106 20240916 (2h + 1h)
- 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 2024-2025
Recull de codis fets a classe. Curs 2024-2025
Algunes classes
20250429
- Desenvolupament del projecte final.
20250428
- Classe anul·lada per apagada elèctrica
- Desenvolupament del projecte final.
20250425
- Desenvolupament del projecte final.
20250422 - Projecte final
- Comença el desenvolupament del projecte final.
20250411
- Seguim fent els exercicis pendents del recull de pràctiques
20250408 - Examen 3r T
20250407
- Comentem la prova epistemològica de l'any passat
- Repassem els tests unitaris que vam fer al projecte de QML test02
- Dubtes
20250404
- Seguim amb la Introducció al testing emprant Qt/QML
- Seguim fent els exercicis pendents del recull de pràctiques
20250401
- Introducció al testing
- Seguim fent els exercicis pendents del recull de pràctiques
20250331
- Seguim fent els exercicis pendents del recull de pràctiques
20250328
- Seguim fent els exercicis pendents del recull de pràctiques
20250325
- Seguim fent els exercicis pendents del recull de pràctiques
20250324
- Pràctiques noves: M04 (programa en Qt de control de la placa mitjançant ModBus) i M05 (programa en QML de control de la placa mitjançant ModBus)
- Seguim fent els exercicis pendents del recull de pràctiques
20250321
- Seguim fent els exercicis pendents del recull de pràctiques
20250318
- Seguim fent els exercicis pendents del recull de pràctiques
20250317
- Com treure senyals pel port sèrie de la placa IoT-02
- Seguim fent els exercicis pendents del recull de pràctiques
20250314
- Sistemes SCADA
- Modbus RTU
- Fent servir l'eina de manteniment de les Qt feu la instal·lació de les biblioteques addicionals QSerialPort i QtSerialBus (M00.2)
- Serial Terminal Exemple estàndard de les Qt per a fer ús de QSerialPort (M00.3)
- Ús de QSerialPort Codi minimitzat d'ús de QSerialPort (M00.4)
- Pràctiques noves per a fer:
- M00.1 (prova del terminal sèrie), M00.2 (instal·lació de QSerialPort), M00.3 (prova de Serial Terminal) i M00.4 (exemple minimalista d'ús de QSerialPort)
- M02 (ús de mb_IoT_00.py per a ModBus)
- Seguim fent els exercicis pendents del recull de pràctiques
20250310
- Seguim fent els exercicis pendents del recull de pràctiques
20250307
- Seguim fent els exercicis pendents del recull de pràctiques
- Per a treballar amb la versió 2 de la biblioteca paho-mqtt (Versió descarregable)
Obriu a un terminal:
python3 -m venv mqtt_env source mqtt_env/bin/activate pip install paho-mqtt python subscript2.py
Obriu a un altre terminal:
source mqtt_env/bin/activate python publicador2.py
- subscript2.py:
import paho.mqtt.client as mqtt # Configuració del broker MQTT BROKER_ADDRESS = "broker.emqx.io" PORT = 1883 TOPIC = "prova/mqtt" # Substitueix amb el teu tema def on_connect(client, userdata, flags, rc, properties=None): """Callback quan el client es connecta al broker.""" if rc == 0: print("Connectat al broker MQTT!") client.subscribe(TOPIC, qos=0) # Subscriu-te al tema else: print(f"Connexió fallida amb codi {rc}") def on_message(client, userdata, msg): """Callback quan es rep un missatge.""" print(f"Missatge rebut al tema '{msg.topic}': {msg.payload.decode()}") def main(): client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2) # Utilitza la versió 2 de l'API de callbacks client.on_connect = on_connect client.on_message = on_message client.connect(BROKER_ADDRESS, PORT, 60) # Connecta't al broker client.loop_forever() # Manté el client en bucle per rebre missatges if __name__ == "__main__": main()
- publicador2.py:
import paho.mqtt.client as mqtt import time # Configuració del broker MQTT BROKER_ADDRESS = "broker.emqx.io" PORT = 1883 TOPIC = "prova/mqtt" # El mateix tema que el subscriptor def on_connect(client, userdata, flags, rc, properties=None): """Callback quan el client es connecta al broker.""" if rc == 0: print("Connectat al broker MQTT!") else: print(f"Connexió fallida amb codi {rc}") def main(): client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2) client.on_connect = on_connect client.connect(BROKER_ADDRESS, PORT, 60) client.loop_start() # Inicia el bucle en un fil separat try: while True: message = f"Missatge publicat a les {time.strftime('%H:%M:%S')}" client.publish(TOPIC, message, qos=0) print(f"Publicat: {message}") time.sleep(5) # Publica un missatge cada 5 segons except KeyboardInterrupt: print("Publicació interrompuda.") finally: client.loop_stop() client.disconnect() if __name__ == "__main__": main()
20250304
- Seguim fent els exercicis pendents del recull de pràctiques
- Afegits A10.3, A17.07 i A17.08 al recull de pràctiques
Desenvolupament d'una API en NodeRed. Pasarel·la HTTP a MQTT
Apagant led blanc:
Encenent led blanc:
- Funció bridge:
msg.topic = msg.req.query['topic']; msg.payload = msg.req.query['payload']; return msg;
- Funció response:
msg.payload = "Tema: "+msg.req.query['topic']+", missatge: "+msg.req.query['payload']; return msg;
Captura de la resposta web
curl "http://iot.electronics.cat:2222/mqtt2?topic=/7C9EBDEA5BA0/ledW&&payload=0" Tema: /7C9EBDEA5BA0/ledW, missatge: 0
Es pot redireccionar la resposta a un arxiu:
curl "http://iot.electronics.cat:2222/mqtt2?topic=/7C9EBDEA5BA0/ledW&&payload=0" > resposta.txt
paho-mqtt i Python
# pip install paho-mqtt
MQTT in Python with Paho Client: Beginner's Guide 2024
A una cel·la del jupyter-lab (si no el teniu, el podeu instal·lar seguint aquestes instruccions):
import random import paho.mqtt.subscribe as subscribe import paho.mqtt.client as mqtt import paho.mqtt.properties as properties mqttc = mqtt.Client('idClient-'+str(random.randrange(100000,999999))) # mqttc.username_pw_set("usuari","contrasenya"); mqttc.connect("broker.emqx.io", 1883) def on_message(clientId, userdata, message): msg = str(message.payload.decode("utf-8")) print('topic = ', message.topic) print('payload = ', msg) mqttc.on_message = on_message mqttc.subscribe('topicName')
A una altra cel·la del jupyter-lab:
mqttc.loop_start()
Usuari i contrasenya a MQTT emprant Paho
- Publicació MQTT des de Paho:
mqttc.publish('topicName','Escola del clot')
20250228
- Seguim fent els exercicis pendents del recull de pràctiques
20250225
20250224
- Seguim fent els exercicis pendents del recull de pràctiques
20250221
- Seguim fent els exercicis pendents del recull de pràctiques
20250218
Metacognició de síntesi (A11) de la part d'IoT del 2n trimestre
20250217
- Afegit l'exercici A13.03 que és l'examen de la part de Qt i QML dels curs passat.
- Afegit l'exercici A13.04 que és el joc de pedra, paper i tisora.
- Snap! de proves MQTT
20250214
- Intel·ligència Artificial:
- Connexió amb Gemini Cal una clau d'API (API key) (Guia ràpida d'ús a l'API de Gemini)
- Reconeixement de veu amb Snap! (Accés directe al projecte amb Snap!)
- Yolo v5 al mòbil
- Afegit l'exercici A14.9 que tracta de desenvolupar un xat de Telegram que dialoga amb l'API de Gemini. Seguim fent els exercicis pendents del recull de pràctiques
20250211
- Seguim fent els exercicis pendents del recull de pràctiques
20250210
- Seguim fent els exercicis pendents del recull de pràctiques
20250204
- Seguim fent els exercicis pendents del recull de pràctiques
20250203
- rps20af: Ús de SwipeView. Pàgines lliscables arrosegant-les
- rps21af: Ús del repetidor a PaginaJoc.qml . Model numèric
- rps22af: Ús del repetidor a PaginaJoc.qml . Model emprant cadenes
- rps23af: Ús del repetidor a PaginaJoc.qml . Model emprant tipus múltiples
- rps24af: Canvi de les lletres a imatges al control
- rps25af: Nou component ControlButtons. Ús de senyals des de subcomponents
- rps26af: Incorporació de l'aleatorietat i visualització del joc de l'usuari i de l'aplicació
- rps27af: Nou component VistaJugada
- rps28af: Transicions d'opacitat
- rps29af: Transicions seqüencials
- rps30af: Rotació de les imatges (rps30af.apk)
20250131
- Codi amb SwipeView i transicions
- Seguim fent els exercicis pendents del recull de pràctiques
20250128
- Si teniu problemes de visualització d'imatges emprant l'arxiu de recursos .qrc afegiu a CMakeLists.txt:
set(CMAKE_AUTORCC ON)
- Seguim fent els exercicis pendents del recull de pràctiques
20250127
- Seguim fent els exercicis pendents del recull de pràctiques
20250124
- LoRaWAN. Curs 2024-2025
- Exercicis A17.01 i A17.02 del recull de pràctiques
- Seguim fent els exercicis pendents del recull de pràctiques
20250121
Doneu-vos d'alta a The Things Network
Doneu-vos d'alta a una instància de Mastodon que permet fer bots
- Seguim fent els exercicis pendents del recull de pràctiques
20250120
Instal·lació de Grafana a Debian o Ubuntu
Instal·lació de Grafana a Windows
- Feu l'exercici A14.5 del recull de pràctiques.
- Si no l'heu finalitzat, acabeu l'exercici A14.8 del recull de pràctiques
- Seguiu fent l'exercici A08.04 del joc de Pedra, Paper i Tisora del recull de pràctiques.
- Feu els exercicis A17.05 i A17.06 del recull de pràctiques que us fan visualitzar a Grafana les dades emmagatzemades a MariaDB.
20250118
- Dubtes
- Part Qt/QML:
- Aquests dos trossos de codi els podeu trobar dins a rps06.zip.
property int angleLletra: 0 transform: Rotation { axis { x: 0 y: 1 z: 0 } origin.x: rect00.width/2 origin.y: rect00.height/2 angle: rect00.angleLletra }
Transition { from: "*" to: "usuariGuanya" //reversible: true ParallelAnimation{ ColorAnimation{ to: "lime" duration: 500 } NumberAnimation { target: rect00 property: "angleLletra" duration: 500 // loops: Animation.Infinite easing.type: Easing.InOutQuad // easing.type: Easing.InOutBounce } }
- Part IoT:
Ús de MariaDB per emmagatzemar dades de la Internet de les Coses
Ús de la base de dades MariaDB des de NodeRED
- Feu l'exercici A14.8 del recull de pràctiques
20250114
- Dubtes
- Seguim amb la Connexió del frontal en QML amb el rerefons en C++ (Q_PROPERTY i Q_INVOKABLE)
- Seguim amb la implementació del joc pedra, paper o tisora (RPS) en QML.
20250113
- Dubtes
- Seguim amb la Connexió del frontal en QML amb el rerefons en C++ (Q_PROPERTY i Q_INVOKABLE)
- Implementació del joc pedra, paper o tisora (RPS) en QML.
20250110
- Dubtes
- Connexió del frontal en QML amb el rerefons en C++ (Q_PROPERTY i Q_INVOKABLE)
Codis explicats el dia d'avui (Exemple de rerefons emprant Q_INVOKABLE)
20241220
- Dubtes
- Seguim fent una ullada als codis QML amb estats i animacions de color
- Documentació QML: Qt6 QML Book (Codis del Qt6 QML Book al GitHub)
- Feu els exercicis pendents del recull de pràctiques
20241217
- Dubtes
- Fem una ullada als codis QML amb estats i animacions de color
- Documentació QML: Qt6 QML Book (Codis del Qt6 QML Book al GitHub)
- Feu els exercicis pendents del recull de pràctiques
20241216
- Dubtes
- Fem córrer QML sobre Android una aplicació emprant MQTT pràctica A13.02 del recull de pràctiques
- Feu els exercicis pendents del recull de pràctiques
20241213
- Dubtes
- Fem córrer QML sobre Android seguint els suggeriments de la pràctica A13.01 del recull de pràctiques
- Feu els exercicis pendents del recull de pràctiques
20241210
- Dubtes
- Feu els exercicis pendents del recull de pràctiques
20241209
- Dubtes
- Feu els exercicis pendents del recull de pràctiques
- Resposta a la pregunta de n'Aroca: Màquina virtual Android per a fer-la servir per a executar codis QML des de QtCreator
- Part IoT: Pràctica A14.7 - UserLand
20241202
- Dubtes
- Feu els exercicis pendents del recull de pràctiques
20241129
- Dubtes
- Feu els exercicis A08.01, A08.02 i A08.03 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
20241126
- Dubtes
- Seguim la instal·lació per a fer servir PureQML
20241125 - QML
Introducció al QML. Curs 2023-2024
Activitats A08.01, A08.02 i A08.03 del recull de pràctiques de 2n de DAM. Curs 2024-2025
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_2024-2025
20241125 - NodeRed
dynamicMqttTopic.json Temes dinàmics a MQTT
20241119 Examen 1r T
20241118
- Dubtes del darrer dia abans de l'examen.
20241115
- Dubtes
- Seguim fent pràctiques pendents
20241112
- Dubtes
- Seguim explicant els codis del dia anterior:
- Multitasca
MicroWorkers Tasques en MicroPython
FreeRTOS Tasques en C a sistemes encastats. (Pàgina oficial de FreeRTOS)
- Exemples de multitasca
- Exercicis de multitasca
La setmana passada ja es van afegir A09.01 i A09.02 (FreeRTOS i MicroWorkers) al Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Seguim fent l'enunciat A12.04 al Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241111
- Dubtes
- Amb l'objectiu de practicar per a l'examen de la setmana vinent, s'ha afegit l'enunciat A12.04 al Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Part IoT
- Configuració de l'MQTT-Dash (MQTT-Dash a Google Play, apk baixada d'APKPure i apkcombo)
20241108
- Dubtes
- Seguim amb el Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241105
- Dubtes
- Seguim amb el Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241104
S'ha afegit l'enunciat A12.03 al Recull de pràctiques de 2n de DAM. Curs 2024-2025
Exercici A12.03. (Heu de desar a la carpeta compartida un document 2425-DAM-A12.03-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A12.03-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
- Part IoT
- Multitasca
MicroWorkers Tasques en MicroPython
FreeRTOS Tasques en C a sistemes encastats. (Pàgina oficial de FreeRTOS)
- Exemples de multitasca
-Exercicis de multitasca
S'ha afegit A09.01 i A09.02 (FreeRTOS i MicroWorkers) al Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241029
- Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Instal·lació local de mosquitto (A07.05 - Instal·lació del servei mosquitto de Recull de pràctiques de 2n de DAM. Curs 2024-2025)
- Introducció al MicroPython (Programació en MicroPython, Micropython and the Internet of Things, Micropython a la placa IoT-02 i
Referència ràpida sobre MicroPython a l'ESP32)
- A07.07 - Introducció al micropython al Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Exemple MicroWorkers a Wokwi
20241028
- Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241025
- Afegit exercici A12.02. Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241022
- Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241021
- Dubtes
- Acabem A06.04
- Comencem a resoldre l'enunciat A06.02
- Hora IoT: Feu A12.01.2 - ginyMqtt amb CMake
20241018
- Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241015
- Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241014
- Nou exercici: A07.08 - Prova de QtMQtt a la placa IoT-02
- Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241011
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241008
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241007
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
void Ex00::on_btAleat_clicked() { ui->lbText->setText(tr("%1").arg(1+rand()%6)); }
20241004
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241001
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20240930
Autenticació d'accés a NodeRED
Ús de la base de dades MariaDB des de NodeRED
Transmissió d'un número real de tipus IEEE-754 (4 bytes) i llur recuperació a NodeRED
20240927
Recull del dia 20240927 usuari: dam | contrasenya: dam2425
- Exercici A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed del recull de pràctiques
- Exercici a0601a de 06.01 - Ginys encastats del recull de pràctiques
- Per a fer servir el CMake cal editar l'arxiu CMakeLists.txt. En aquest exemple, prenent com a base el projecte pr20240927_00 fet amb qmake, s'ha fet un nou projecte anomenat pr20240927_00_cmake amb una classe base anomenada Matrioixca. Un cop fet es tanca el QtCreator i es copien els sis arxius .cpp, .h i .ui a la carpeta del nou projecte (els matrioixca.* seran sobreescrits) i editeu l'arxiu CMakeLists.txt afegint les línies en negreta:
set(PROJECT_SOURCES main.cpp matrioixca.cpp matrioixca.h matrioixca.ui giny01.cpp giny01.h giny01.ui ginylcd.cpp ginylcd.h ginylcd.ui )
20240923
Connectem la placa IoT-02 mitjançant Snap! i NodeRed.
Microprogramari per a treballar dins l'Escola del Clot
Canvieu el broker1 pel broker2 a l'accés directe a 07_IoT-02_with_json_Broker1.xmlCodi en Snap! incorporant l'ús de JSON i microprogramari per a gestionar, també, l'ús de JSON a la placa IoT-02. Firmware IoT-02_mqtt_json_upcSchool_broker1 en GitHub
20240920
//#include "esp_wpa2.h" //wpa2 library for connections to Enterprise networks #include "esp_eap_client.h" // v3
20240917
Heu de dur un cable microusb per a connectar a l'ordinador o una font d'alimentació microusb!
20240916 (2h + 1h)
Recull del dia 20240916 usuari: dam | contrasenya: dam2425
Distribució de M07UF1 i M13 al curs 2024-2025
Distribució de M07UF1 i M13 al curs 2024-2025 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
Credencials IoT
#define EAP_ANONYMOUS_IDENTITY "CL-Internet_de_les_coses" #define EAP_IDENTITY "CL-Internet_de_les_coses" #define EAP_PASSWORD "CLioT2022_" #define EAP_USERNAME "CL-Internet_de_les_coses" const char* ssid = "IOTJE";
20241119 Examen 1r T
20241118
- Dubtes del darrer dia abans de l'examen.
20241115
- Dubtes
- Seguim fent pràctiques pendents
20241112
- Dubtes
- Seguim explicant els codis del dia anterior:
- Multitasca
MicroWorkers Tasques en MicroPython
FreeRTOS Tasques en C a sistemes encastats. (Pàgina oficial de FreeRTOS)
- Exemples de multitasca
- Exercicis de multitasca
La setmana passada ja es van afegir A09.01 i A09.02 (FreeRTOS i MicroWorkers) al Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Seguim fent l'enunciat A12.04 al Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241111
- Dubtes
- Amb l'objectiu de practicar per a l'examen de la setmana vinent, s'ha afegit l'enunciat A12.04 al Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Part IoT
- Configuració de l'MQTT-Dash (MQTT-Dash a Google Play, apk baixada d'APKPure i apkcombo)
20241108
- Dubtes
- Seguim amb el Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241105
- Dubtes
- Seguim amb el Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241104
S'ha afegit l'enunciat A12.03 al Recull de pràctiques de 2n de DAM. Curs 2024-2025
Exercici A12.03. (Heu de desar a la carpeta compartida un document 2425-DAM-A12.03-1rCognom2nCognomNom.pdf amb les solucions explicades i un arxiu 2425-DAM-A12.03-1rCognom2nCognomNom.zip amb els codis comprimits, sense el .pro.user si ho feu amb qmake o el .txt.user si ho feu amb CMake).
- Part IoT
- Multitasca
MicroWorkers Tasques en MicroPython
FreeRTOS Tasques en C a sistemes encastats. (Pàgina oficial de FreeRTOS)
- Exemples de multitasca
-Exercicis de multitasca
S'ha afegit A09.01 i A09.02 (FreeRTOS i MicroWorkers) al Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241029
- Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Instal·lació local de mosquitto (A07.05 - Instal·lació del servei mosquitto de Recull de pràctiques de 2n de DAM. Curs 2024-2025)
- Introducció al MicroPython (Programació en MicroPython, Micropython and the Internet of Things, Micropython a la placa IoT-02 i
Referència ràpida sobre MicroPython a l'ESP32)
- A07.07 - Introducció al micropython al Recull de pràctiques de 2n de DAM. Curs 2024-2025
- Exemple MicroWorkers a Wokwi
20241028
- Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241025
- Afegit exercici A12.02. Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241022
- Seguim fent els exercicis pendents de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241021
- Dubtes
- Acabem A06.04
- Comencem a resoldre l'enunciat A06.02
- Hora IoT: Feu A12.01.2 - ginyMqtt amb CMake
20241018
- Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241015
- Seguim fent els exercicis pendents (A06.01, A06.04, A07.01, A07.02, A07.03, A07.04, A07.08, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241014
- Nou exercici: A07.08 - Prova de QtMQtt a la placa IoT-02
- Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241011
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241008
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241007
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
void Ex00::on_btAleat_clicked() { ui->lbText->setText(tr("%1").arg(1+rand()%6)); }
20241004
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20241001
Seguim fent els exercicis pendents (A06.01, A07.01, A07.02, A14.1) de Recull de pràctiques de 2n de DAM. Curs 2024-2025
20240930
Autenticació d'accés a NodeRED
Ús de la base de dades MariaDB des de NodeRED
Transmissió d'un número real de tipus IEEE-754 (4 bytes) i llur recuperació a NodeRED
20240927
Recull del dia 20240927 usuari: dam | contrasenya: dam2425
- Exercici A07.01 - Introducció al control de la placa Iot-02 mitjançant NodeRed del recull de pràctiques
- Exercici a0601a de 06.01 - Ginys encastats del recull de pràctiques
- Per a fer servir el CMake cal editar l'arxiu CMakeLists.txt. En aquest exemple, prenent com a base el projecte pr20240927_00 fet amb qmake, s'ha fet un nou projecte anomenat pr20240927_00_cmake amb una classe base anomenada Matrioixca. Un cop fet es tanca el QtCreator i es copien els sis arxius .cpp, .h i .ui a la carpeta del nou projecte (els matrioixca.* seran sobreescrits) i editeu l'arxiu CMakeLists.txt afegint les línies en negreta:
set(PROJECT_SOURCES main.cpp matrioixca.cpp matrioixca.h matrioixca.ui giny01.cpp giny01.h giny01.ui ginylcd.cpp ginylcd.h ginylcd.ui )
20240923
Connectem la placa IoT-02 mitjançant Snap! i NodeRed.
Microprogramari per a treballar dins l'Escola del Clot
Canvieu el broker1 pel broker2 a l'accés directe a 07_IoT-02_with_json_Broker1.xmlCodi en Snap! incorporant l'ús de JSON i microprogramari per a gestionar, també, l'ús de JSON a la placa IoT-02. Firmware IoT-02_mqtt_json_upcSchool_broker1 en GitHub
20240920
//#include "esp_wpa2.h" //wpa2 library for connections to Enterprise networks #include "esp_eap_client.h" // v3
20240917
Heu de dur un cable microusb per a connectar a l'ordinador o una font d'alimentació microusb!
20240916 (2h + 1h)
Recull del dia 20240916 usuari: dam | contrasenya: dam2425
Distribució de M07UF1 i M13 al curs 2024-2025
Distribució de M07UF1 i M13 al curs 2024-2025 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
Credencials IoT
#define EAP_ANONYMOUS_IDENTITY "CL-Internet_de_les_coses" #define EAP_IDENTITY "CL-Internet_de_les_coses" #define EAP_PASSWORD "CLioT2022_" #define EAP_USERNAME "CL-Internet_de_les_coses" const char* ssid = "IOTJE";
Repositori de codis fet a classe durant el curs
Codis fets a les classes de 2n de DAM usuari: dam | contrasenya: dam2425
Documentació
Curs2024-2025 Eina d'avaluació GP1 Curs 2024-2025 - Departament
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
Vídeos externs per aprendre QML
(Gentilesa d'en Raül Gil García)
- (10) Tutorial QML - YouTube
- qmlscene
- Tesla Model 3 Dashboard with Advanced Map Integration and Seamless Music Control Using QT QML
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