You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/it/1-getting-started/lessons/4-connect-internet/single-board-computer-mqtt.md

4.3 KiB

Controlla la tua luce notturna su Internet - Hardware IoT virtuale e Raspberry Pi

Il dispositivo IoT deve essere programmato per comunicare con test.mosquitto.org utilizzando MQTT, al fine di inviare valori di telemetria con la lettura del sensore di luce e ricevere comandi per controllare il LED.

In questa parte della lezione, collegherai il tuo Raspberry Pi o dispositivo IoT virtuale a un broker MQTT.

Installa il pacchetto client MQTT

Per comunicare con il broker MQTT, è necessario installare una libreria MQTT tramite pip, sia sul tuo Raspberry Pi che nel tuo ambiente virtuale, se stai utilizzando un dispositivo virtuale.

Attività

Installa il pacchetto pip

  1. Apri il progetto della luce notturna in VS Code.

  2. Se stai utilizzando un dispositivo IoT virtuale, assicurati che il terminale stia eseguendo l'ambiente virtuale. Se stai utilizzando un Raspberry Pi, non utilizzerai un ambiente virtuale.

  3. Esegui il seguente comando per installare il pacchetto pip MQTT:

    pip3 install paho-mqtt
    

Programma il dispositivo

Il dispositivo è pronto per essere programmato.

Attività

Scrivi il codice del dispositivo.

  1. Aggiungi il seguente import all'inizio del file app.py:

    import paho.mqtt.client as mqtt
    

    La libreria paho.mqtt.client consente alla tua app di comunicare tramite MQTT.

  2. Aggiungi il seguente codice dopo le definizioni del sensore di luce e del LED:

    id = '<ID>'
    
    client_name = id + 'nightlight_client'
    

    Sostituisci <ID> con un ID univoco che verrà utilizzato come nome di questo client del dispositivo e successivamente per i topic che questo dispositivo pubblica e sottoscrive. Il broker test.mosquitto.org è pubblico e utilizzato da molte persone, inclusi altri studenti che stanno lavorando a questo compito. Avere un nome client MQTT e nomi di topic univoci garantisce che il tuo codice non entri in conflitto con quello di altri. Avrai bisogno di questo ID anche quando creerai il codice del server più avanti in questo compito.

    💁 Puoi utilizzare un sito web come GUIDGen per generare un ID univoco.

    Il client_name è un nome univoco per questo client MQTT sul broker.

  3. Aggiungi il seguente codice sotto questo nuovo codice per creare un oggetto client MQTT e connetterti al broker MQTT:

    mqtt_client = mqtt.Client(client_name)
    mqtt_client.connect('test.mosquitto.org')
    
    mqtt_client.loop_start()
    
    print("MQTT connected!")
    

    Questo codice crea l'oggetto client, si connette al broker MQTT pubblico e avvia un ciclo di elaborazione che viene eseguito in un thread in background, ascoltando i messaggi su qualsiasi topic sottoscritto.

  4. Esegui il codice nello stesso modo in cui hai eseguito il codice nella parte precedente del compito. Se stai utilizzando un dispositivo IoT virtuale, assicurati che l'app CounterFit sia in esecuzione e che il sensore di luce e il LED siano stati creati sui pin corretti.

    (.venv) ➜  nightlight python app.py 
    MQTT connected!
    Light level: 0
    Light level: 0
    

💁 Puoi trovare questo codice nella cartella code-mqtt/virtual-device o nella cartella code-mqtt/pi.

😀 Hai collegato con successo il tuo dispositivo a un broker MQTT.

Disclaimer:
Questo documento è stato tradotto utilizzando il servizio di traduzione automatica Co-op Translator. Sebbene ci impegniamo per garantire l'accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un traduttore umano. Non siamo responsabili per eventuali incomprensioni o interpretazioni errate derivanti dall'uso di questa traduzione.