Differences

This shows you the differences between two versions of the page.

Link to this comparison view

si:laboratoare:2025:04 [2025/10/25 23:23]
andreea.miu [Exercitii]
si:laboratoare:2025:04 [2025/10/26 00:04] (current)
andreea.miu [Laboratorul 04. MQTT]
Line 1: Line 1:
 ===== Laboratorul 04. MQTT ===== ===== Laboratorul 04. MQTT =====
- 
-<​hidden>​ 
-WIP 
-</​hidden>​ 
  
 ==== Despre IoT ==== ==== Despre IoT ====
Line 43: Line 39:
  
 **1.** Folosind sistemul de build al NuttX, vom compila aplicatia ''​mqttc_pub''​. Codul sursa a acesteia il puteti gasi in ''​apps/​examples/​mqttc''​. **1.** Folosind sistemul de build al NuttX, vom compila aplicatia ''​mqttc_pub''​. Codul sursa a acesteia il puteti gasi in ''​apps/​examples/​mqttc''​.
-  * Activati ''​CONFIG_EXAMPLES_MQTTC''​ folosind ''​make menuconfig''​ pentru a putea rula exemplul default din NuttX, ''​mqttc_pub''​.+  ​* Folositi configuratia ''​hacktorwatch:​iot'',​ care include tool-uri necesare (precum ''​wapi''​ pentru conectarea la o retea WiFi) 
 +  ​* Activati ''​CONFIG_EXAMPLES_MQTTC''​ folosind ''​make menuconfig''​ pentru a putea rula exemplul default din NuttX, ''​mqttc_pub''​
   * Compilati, incarcati pe ceas noul binar si conectati-va la seriala folosind utilitarul picocom.   * Compilati, incarcati pe ceas noul binar si conectati-va la seriala folosind utilitarul picocom.
   * Verificati ca aplicatia e instalata, folosind comanda: ''?''​.   * Verificati ca aplicatia e instalata, folosind comanda: ''?''​.
  
-**2.** Pentru a putea testa aplicatia, ​ne dorim sa cream un setup de tipul //​Publisher-Subscriber//​. Pentru aceastavom crea un MQTT subscriber ​care sa primeasca datele trimise de MQTT publisher (reprezentat de placa).+**2.** Pentru a putea testa aplicatia, ​veti face un setup de tipul //​Publisher-Subscriber//, ​in care ceasul va publica date, iar masina virtuala / host-ul le va primi cu ajutorul unui script Python.
  
   * Instalati libraria ''​paho-mqtt''​ pe masina virtuala: ''​pip3 install paho-mqtt''​.   * Instalati libraria ''​paho-mqtt''​ pe masina virtuala: ''​pip3 install paho-mqtt''​.
Line 55: Line 52:
 </​note>​ </​note>​
  
-  * Folositi ​scriptul Python 3 de mai jos, si plasati-l ​pe masina virtuala; acest script joaca rolul de MQTT subscriber din figura prezentata in laborator. Pregatiti un terminal separat (ideal: pe care sa il puteti vedea in paralel cu primul) din care veti rula la finalul exercitiului acest script.+  * Urcati ​scriptul Python 3 de mai jos pe masina virtuala ​/ host; acest script joaca rolul de MQTT subscriber din figura prezentata in laborator.
  
 <file python mqtt_subscriber.py>​ <file python mqtt_subscriber.py>​
Line 82: Line 79:
 </​file>​ </​file>​
  
-  * Pentru a putea trimite mesaje folosind ​ESP32, vom conecta ​placa la WiFi. Puteti folosi orice retea WiFi disponibila (ideal: activati ​un hotspot cu ajutorul telefonului). ​Folositi urmatorii pasi pentru ​a conecta ​placa la reteaua WiFi: <​code>​+  ​* Pregatiti 2 terminale deschise in paralel pe masina virtuala / host pentru a vedea trimiterea si primirea mesajelor (optional, puteti folosi [[https://​github.com/​tmux/​tmux/​wiki|tmux]] pentru a gestiona terminalele). Folositi unul dintre terminale pentru a rula scriptul de mai sus, iar celalalt pentru a va conecta la seriala smartwatch-ului. 
 + 
 +<note tip> 
 +Scriptul Python de mai sus poate fi rulat si direct pe Windows / Mac folosind linia de comanda. 
 +</​note>​ 
 + 
 +  ​* Pentru a putea trimite mesaje folosind ​smartwatch-ulil vom conecta la WiFi. Puteti folosi orice retea WiFi disponibila (sau puteti activa ​un hotspot cu ajutorul telefonului). ​Pentru ​a conecta ​ceasul ​la reteaua WiFi, folositi comenzile: <​code>​
 ifup wlan0 ifup wlan0
 wapi psk wlan0 <​mypasswd>​ 3 wapi psk wlan0 <​mypasswd>​ 3
Line 89: Line 92:
 </​code>​ </​code>​
  
-  * In final, veti avea deschise 2 terminale: unul ce ruleaza scriptul Python (MQTT subscriber),​ si altul ce afiseaza seriala placii, pe care se afla MQTT publisher-ul. ​Pentru a publica date, folosim comanda: <​code>​+  * Pentru a publica date folsind ceasul, folosim comanda: <​code>​
 mqttc_pub -h broker.hivemq.com -t si-labs -m <​message>​ mqttc_pub -h broker.hivemq.com -t si-labs -m <​message>​
 </​code>​ </​code>​
-  * Trimiteti mai multe date modificand topic-ul si valoarea.+  * Trimiteti mai multe date modificand topic-ul si valoarea. ​Nu uitati sa modificati topic-ul si in scriptul Python!
  
-<​note ​important+<​note ​tip
-Schimbati numele ​topic-ului atat in scriptul Python, cat si in comanda ​de mai sus (altfel, veti primi si mesajele de la ceilalti colegi).+Observati cum protocolul MQTT nu tine cont de reteaua WiFi la care sunteti conectati, ci doar de topic-ul setat de voi. Incercati sa transmiteti mesaje pe topic-ul ''​si-labs''​ si observati calculatoarele colegilor abonati ​la acelasi topic.
 </​note>​ </​note>​
  
si/laboratoare/2025/04.1761423808.txt.gz · Last modified: 2025/10/25 23:23 by andreea.miu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0