Experiment 2

  • L2.1 Denumire

  • MQTT cu Broker Raspberry Pi 5 si Pico2/5 W client



  • L2.2 Prezentare generala, scop

  • Experimentul isi propune sa ofere o posibilitate de explorare a protocolului MQTT utilizand ca nucleu central aplicatia Broker Moskitto si o platforma Raspberry Pi 5 AI Kit. Pentru dezvoltarea nodurilor de tip publisher/subcriber sunt utilizate platforme Raspberry Pi Pico 2 W cu sensori si actuatoare. Sunt dezvoltate programe de tip publisher pe Pico si de tip subscriber pe Pi5. La sfarsitul experimentului se vor detine informatii detaliate despre realizarea unei retele de sensori/actuatoare interconectati la un broker MQTT.Posibilitatea explorarii literaturii cu specificatii MQTT est un alt aspect urmarit.

  • L2.3 Resurse

  • Hardware: Rpi Pico 2 W,Thonny, Micropython, Platforma Raspberry Pi AI kit



  • L2.4 Program prototip


  • Pentru Pico 2 W
    1. Program trimitere/Publish date pentru Pico2 cu DHT22
    2. Program trimitere/Publish date JSON pentru Pico2 cu DHT22

    Pentru Pi 5
    3. Program receptie/subsriber date sensori pe PI 5
    4. Program receptie/subscriber date format JSON pe PI 5

  • L2.5 Mod de desfasurare/realizare experiment
  • MQTT (Message Queuing Telemetry Transport) este un protocol de comunicatii pentru aplicatii de tip M2M (Machine to machine) si IoT care utilizeaza un server care poate receptiona date care apoi le poate oferi un entitati de tip client. este "standardul de aur" în lumea Internet of Things (IoT). A fost creat în 1999 pentru a monitoriza conductele de petrol prin satelit, deci este construit din start pentru a fi extrem de eficient și rezistent la conexiuni cu performante reduse. Coponentele principale sunt reprezenate in figura de mai jos:

    Linia de comanda pentru instalare broker Mosquitto pe Raspberry pi 5 este urmatoarea :

    > sudo apt install mosquitto mosquitto-clients -y

    Linia de activare/desactivare broker :

    >sudo systemctl start mosquitto.service
    >sudo systemctl stop mosquitto.service

    Configurare start/stop broker la pornire Linux :

    >sudo systemctl enable mosquitto.service
    >sudo systemctl disable mosquitto.service

    Verificare functionare Broker:

    > mosquitto -v
    O posibilitate de vizualizare a bunei functionari poate fi realizata cu ajutorul a 2 sesiuni in 2 terminale , in unul se apeleaza functia de publisher iar in celalalt functia de subscriber, rezultatul fiind observabil in imaginile de mai jos:

    Terminalul 1:


    Terminalul 2 :


    Pentru a permite accesul sistemlor client din exterior trebuie modificat fisierul de configurare astfel:

    > sudo nano /etc/mosquitto/mosquitto.conf

    unde trebuie inroduse urmatoarele 2 linii :

    listener 1883
    allow_anonymous true

    Pentru a fi activae aceste functii terbuie resartat brokerul astfel:

    > sudo systemctl restart mosquitto

    Client Mosquitto cu Pico 2 W

    Schema unui unui client MQTT realizat cu Pico 2 W este reprezentata in figura urmatoare.



    In cazul de fata este utilizat un sensor de umiditate si temperatura de tip DH22, programele prototip 1si 2 realizeaza functia de MQTT client, primul rimie datele direct, al doilea le trimite in format JSON.
    Procesorul RP2350 din structura Pico2 W dispunde interfete multiple cu ajutorul carora pot fi realizae game extinse de clienti MQTT pentru sensori si actuatoare. In cazul de fata sunt incluse un potentiometru conectat cu cursorul la ADC! pentru a substitui senzorii analogici, un ceas de timp real de tip DS3231 penru a comunica informatii de timp si un display local de tip TM1637 pentru testarea situatiilor de subscriber.

    Subscriber MQTT cu Raspberry PI 5

    Vizualizarea dtaelor trimise de client poate fi realizata pe raspberry pi 5 cu programele prototip 4 si 5 care implementeaza functii de subscriber echivalente apelarii urmatoarei linii de comanda:

    >mosquitto_sub -h localhost -t "casa/sensor/umiditate"



    pentru recepia datelor in format JSON poate fi utiliza programul prootip nr. 4 cu functie de subsriber pe Raspberry Pi 5 care va returna urmatoarele informatii:



  • L2.6 Probleme propuse


  • 1. Pe baza experimenului 1 realizati un client care va trimite catre Brokerul de pe Pi5, presiune atmosferica.
    2. Pe baza experimenului 2 realizati un program care va activa un LED pe PI incazul cand umiditatea trimisa de un client depaseste 40%.
    3. Realizati un client/node cu Pico 2 ,cu sensor si potentiometru conectat la ADC a caror valori vor fi trimise la Broker.
    4. Experimentati un sistem/node cu Pico 2 cu functii duble, respectiv publiser si subscriber.
    5. Dezvoltati 2 sisteme/nodes cu Pico 2 care vor comunica intre ele prin intermediul Brokerului Mosquitto de pe Raspberry Pi 5.



  • L2.7 Experimentul poate fi extins pentru:

  • L2.8 Informatii colaterale

  • © 2010-2026 - Embedded Advanced Computer