Differences

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

Link to this comparison view

priot:laboratoare:05 [2024/10/01 17:01]
127.0.0.1 external edit
priot:laboratoare:05 [2024/11/12 14:29] (current)
alexandru.bala [Partea III: Configurarea Codului pe Raspberry Pi Pico pentru a Trimite un Mesaj Simplu]
Line 1: Line 1:
-===== Laboratorul 05. =====+===== Laboratorul 05: Transmiterea Datelor Senzoriale prin MQTT pe Raspberry Pi Pico ===== 
 + 
 +==== Obiective: ==== 
 + 
 +Acest laborator introduce utilizarea protocolului MQTT pentru a transmite date de la un Raspberry Pi Pico catre un broker MQTT configurat pe un laptopVeti invata cum sa configurati un broker MQTT pe Windows, sa trimiteti un mesaj simplu folosind MQTT si veti finaliza laboratorul cu doua taskuri: 
 +    * Transmiterea de date senzoriale (temperatura si lumina) de pe Pico catre brokerul MQTT. 
 +    * Capturarea pachetelor MQTT cu Wireshark pentru a vizualiza comunicatia MQTT intre Pico si broker. 
 + 
 + 
 +====Partea I: Introducere teoretica==== 
 + 
 +1. Ce este MQTT? 
 + 
 +MQTT (Message Queuing Telemetry Transport) este un protocol de comunicatie simplu si eficient, folosit in principal in aplicatiile Internet of Things (IoT) pentru a transmite mesaje intre dispozitive si servere. Protocolul MQTT este bazat pe un model publish-subscribe (publicare-abonare),​ unde un broker (server) gestioneaza mesajele intre clientul care publica si clientul care se aboneaza la un anumit canal de comunicatie,​ numit topic. 
 + 
 +Componentele principale ale MQTT: 
 +    * Broker MQTT: Serverul care primeste si transmite mesaje intre clienti. In acest caz, laptopul cu Mosquitto va actiona ca server. 
 +    * Client MQTT: Un dispozitiv care poate fie sa publice, fie sa se aboneze la mesaje pe un anumit topic. Raspberry Pi Pico va fi clientul care publica mesajele cu datele senzorilor. 
 +    * Topic: Canalul de comunicatie,​ identificat printr-un string (de exemplu, senzori/​temperatura). Clientii abonati la un topic vor primi mesajele publicate pe acel topic 
 + 
 +Fluxul de Conexiune MQTT: 
 + 
 +    * Clientul (Raspberry Pi Pico) se conecteaza la broker. 
 +    * Pico publica mesaje (date de la senzori) catre un topic specific. 
 +    * Brokerul MQTT primeste mesajul si il transmite tuturor abonatilor acelui topic. 
 + 
 + 
 +====Partea II: Configurarea Brokerului Mosquitto pe Windows==== 
 + 
 +==Instalarea si configurarea VS Code cu extensia MicroPico== 
 +Pas 1: Instalare Mosquitto 
 +  * Descarca Mosquitto de pe pagina oficiala Mosquitto: https://​mosquitto.org/​download/​. 
 +  * Instaleaza Mosquitto pe laptopul cu Windows, bifand optiunea de a adauga Mosquitto la PATH pentru a putea folosi comenzile mosquitto din Command Prompt. 
 + 
 +Pas 2: Configurare Mosquitto pentru a permite conexiuni externe 
 + 
 +    * Deschide fisierul de configurare mosquitto.conf,​ care se gaseste de obicei in C:\Program Files\mosquitto. 
 + 
 +    * Daca fisierul nu exista, creeaza un fisier text nou in acest folder si redenumeste-l mosquitto.conf. 
 + 
 +    * Adauga urmatoarele linii in fisier pentru a permite conexiunile de la alte dispozitive din retea: 
 +          *  listener 1883 - permite conexiuni pe portul standard MQTT fara SSL. 
 +          *  allow_anonymous true - permite tuturor clientilor sa se conecteze fara autentificare. 
 +    * Salveaza fisierul mosquitto.conf. 
 + 
 + 
 + 
 +Pas 3: Porneste Mosquitto 
 + 
 +    * Deschide un Command Prompt. 
 + 
 +    * Ruleaza comanda pentru a porni Mosquitto cu configurarea realizata: mosquitto -v -c "​C:​\Program Files\mosquitto\mosquitto.conf"​ 
 + 
 +    * Optiunea -v activeaza modul detaliat (verbose), astfel incat sa vezi detalii despre conexiunile si mesajele primite. 
 + 
 + 
 +====Partea III: Configurarea Codului pe Raspberry Pi Pico pentru a Trimite un Mesaj Simplu==== 
 +In acest exemplu, vei scrie un program pe Raspberry Pi Pico care se conecteaza la Wi-Fi si trimite un mesaj simplu („Hello World”) catre brokerul MQTT. 
 + 
 +a) Instalarea MicroPython pe Raspberry Pi Pico 
 +  *     ​Conecteaza Pico la computer in timp ce tineti apasat butonul BOOTSEL. 
 +  *     ​Descarca fisierul MicroPython UF2 pentru Raspberry Pi Pico de pe https://​micropython.org/​download/​RPI_PICO_W/​. 
 + 
 + 
 +b) Pregatirea bibliotecii umqtt.simple pe Pico 
 + * Descarca fisierul simple.py din repository-ul micropython-lib. 
 + * Salveaza acest fisier in structura umqtt/​simple.py pe Pico (folosind VS Code sau Thonny). 
 + 
 +c) Codul de conectare la broker si publicare a unui mesaj 
 + 
 +Codul de mai jos configureaza conexiunea si trimite un mesaj de test pe topicul test/​topic. 
 + 
 +<code lang send_msg.py>​ 
 +import network 
 +import time 
 +import umqtt.simple as mqtt 
 + 
 +# Seteaza detaliile retelei Wi-Fi 
 +ssid = '​numele_wifi'​ 
 +password = '​parola_wifi'​ 
 + 
 +# Conectare la Wi-Fi 
 +wlan = network.WLAN(network.STA_IF) 
 +wlan.active(True) 
 +wlan.connect(ssid,​ password) 
 + 
 +while not wlan.isconnected():​ 
 +    print("​Conectare la retea..."​) 
 +    time.sleep(1) 
 + 
 +print("​Conectat la retea:",​ wlan.ifconfig()) 
 + 
 +# Configurare client MQTT 
 +mqtt_server = '​IP-ul_laptopului' ​ # Inlocuieste cu IP-ul laptopului 
 +client_id = '​pico_test'​ 
 +topic = '​test/​topic'​ 
 + 
 +# Initializeaza clientul MQTT si se conecteaza la broker 
 +client = mqtt.MQTTClient(client_id,​ mqtt_server,​ port=1883) 
 + 
 +try: 
 +    client.connect() 
 +    print("​Conectat la broker MQTT"​) 
 + 
 +    # Trimite un mesaj simplu 
 +    message = "Hello World"​ 
 +    client.publish(topic,​ message) 
 +    print(f"​Mesaj trimis: {message}"​) 
 + 
 +    # Deconecteaza-te 
 +    client.disconnect() 
 + 
 +except Exception as e: 
 +    print("​Eroare de conectare:",​ e) 
 + 
 +</​code>​ 
 + 
 +c) Explicatii despre Cod 
 +  * Codul initializeaza si conecteaza Pico la retea, configureaza clientul MQTT, si trimite mesajul „Hello World” pe topicul test/​topic. 
 +  * Topicul test/topic poate fi modificat daca doresti sa utilizezi un alt nume descriptiv. 
 +  * client_id trebuie sa fie unic pentru fiecare dispozitiv client in retea. 
 + 
 +====Partea IV: Testarea Mesajului de Test pe Laptop==== 
 + 
 +Pasi: 
 +  * Deschide un nou terminal pe laptop. 
 +  * Ruleaza comanda de mai jos pentru a asculta mesajele pe topicul test/topic: mosquitto_sub -h localhost -t '​test/​topic'​ 
 +  * Daca setup-ul este corect, ar trebui sa vezi mesajul „Hello World” afisat in terminal atunci cand codul de pe Pico ruleaza corect. 
 + 
 +====Exercitii==== 
 + 
 +===Exercitiu 1: Transmiterea de Date de la Senzori=== 
 +Configurati Raspberry Pi Pico sa citeasca date de la un senzor de temperatura si unul de lumina si sa publice aceste date pe doua topicuri MQTT separate. 
 + 
 +===Exercitiu 2: Analiza Pachetelor MQTT cu Wireshark=== 
 +Utilizati Wireshark pentru a monitoriza traficul MQTT intre Raspberry Pi Pico si brokerul Mosquitto de pe laptop, pentru a vizualiza structura si tipul pachetelor MQTT transmise. Identificati unde in interiorul pachetului sunt transmise datele revelante. 
 + 
 +Interpretarea Pachetelor MQTT in Wireshark:​ 
 + 
 + - CONNECT: Pachetul de conectare de la Pico catre broker. 
 + 
 + - PUBLISH: Pachetul care contine mesajul publicat pe un topic specific. 
 + 
 + - DISCONNECT: Pachetul de deconectare,​ trimis cand conexiunea este inchisa. 
  
  
priot/laboratoare/05.1727791296.txt.gz · Last modified: 2024/11/05 11:24 (external edit)
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