Nozioni di base su MQTT
MQTT è un'architettura di pubblicazione/sottoscrizione sviluppata principalmente per connettere dispositivi con larghezza di banda e consumi limitati tramite reti wireless. Si tratta di un protocollo semplice e leggero che funziona tramite socket TCP/IP o WebSocket. MQTT su WebSocket può essere protetto con SSL. L'architettura publish/subscribe consente di inviare messaggi ai dispositivi client senza che il dispositivo debba interrogare continuamente il server.
Il broker MQTT è il punto centrale della comunicazione e si occupa di inviare tutti i messaggi tra i mittenti e i legittimi destinatari. Un client è qualsiasi dispositivo che si connette al broker e può pubblicare o sottoscrivere argomenti per accedere alle informazioni. Un argomento contiene le informazioni di routing per il broker. Ogni client che desidera inviare messaggi li pubblica su un argomento specifico, mentre ogni client che desidera ricevere messaggi si iscrive a un argomento specifico. Il broker consegna tutti i messaggi con l'argomento corrispondente ai client appropriati.
ThingSpeak™ ha un broker MQTT all'URL mqtt3.thingspeak.com e alla porta 1883. Il broker ThingSpeak supporta sia la pubblicazione MQTT che la sottoscrizione MQTT, come mostrato nei diagrammi seguenti.
Pubblicazione MQTT
Questa figura descrive la struttura dell'argomento. Il broker riconosce una richiesta CONNECT corretta con CONNACK.

Iscriviti a MQTT
Questa figura descrive la struttura dell'argomento. Il broker riconosce una richiesta SUBSCRIBE corretta con SUBACK.

Crea un dispositivo MQTT ThingSpeak
L'accesso MQTT ai tuoi canali, comprese le credenziali, è gestito da un dispositivo MQTT ThingSpeak. Il dispositivo è configurato con le credenziali necessarie affinché il client MQTT possa comunicare con ThingSpeak e autorizzare canali specifici. Per creare un dispositivo MQTT, attenersi alla seguente procedura.
Nel menu ThingSpeak clicca su Devices > MQTT.

Nella pagina Dispositivi MQTT, fare clic su Add a new device.

Compila la finestra di dialogo Aggiungi un nuovo dispositivo:

Fornire un nome per il dispositivo.
Fornire una descrizione facoltativa.
Nella sezione Autorizza canali, seleziona un canale dal menu elenco, quindi fai clic su Add Channel. Ripetere questa operazione finché tutti i canali che si desidera collegare al dispositivo non sono presenti nell'elenco dei canali autorizzati. Imposta ciascuna opzione per consentire la pubblicazione e la sottoscrizione, a seconda delle necessità.
Clicca Add Device.
A questo punto, ThingSpeak genera un elenco di credenziali per il tuo dispositivo che include ID client, nome utente e password. È possibile visualizzare e copiare questi elementi da questa pagina oppure fare clic su Download Credentials per salvare le credenziali in un file locale. Importante: Registra o salva subito le tue credenziali, poiché non avrai più la possibilità di visualizzare o salvare la password.
Fare clic su Done per completare la creazione del dispositivo.
Il tuo nuovo dispositivo ora appare nella pagina Dispositivi MQTT. Puoi modificare le impostazioni del tuo dispositivo e aggiungere canali cliccando su Edit. Puoi utilizzare l'ID client, il nome utente e la password nel tuo client MQTT per accedere al tuo dispositivo MQTT ThingSpeak per pubblicare e iscriverti ai suoi canali.
Nota
È possibile avere fino a 100 dispositivi MQTT per utente, con un massimo di 10 canali autorizzati per dispositivo. Se hai bisogno di più dispositivi o canali, contatta l'assistenza.
Per informazioni sull'utilizzo di un client MQTT desktop, vedere Pubblica e iscriviti a un canale utilizzando il client MQTT desktop.
Reimpostazione password dispositivo. Se in qualsiasi momento hai bisogno di reimpostare la password del tuo dispositivo, puoi farlo dalla pagina di modifica del dispositivo:
Seleziona Devices > MQTT.
Nell'elenco visualizzato dei dispositivi MQTT, per il dispositivo che desideri reimpostare, fai clic su Edit per visualizzarne i dettagli di configurazione.
Nella sezione MQTT Credentials, fare clic sull'icona di rigenerazione per reimpostare la password. Le connessioni che utilizzano la vecchia password verranno disabilitate.

Risposta del server per le connessioni
Se la connessione riesce, il broker MQTT ThingSpeak risponde con una conferma di connessione, CONNACK. Il broker MQTT risponde a una richiesta di sottoscrizione andata a buon fine con un messaggio SUBACK e inoltra al client tutti i nuovi dati pubblicati sul canale o sul campo sottoscritto. Per saperne di più su questi messaggi, vedere la specifica MQTT v3.1.1. È quindi possibile pubblicare messaggi negli argomenti utilizzando il formato Publish to a Channel Feed o Publish to a Channel Field Feed.
Configurazione del client MQTT
ThingSpeak ha un broker MQTT all'URL mqtt3.thingspeak.com. Configura il tuo client MQTT per comunicare con il broker MQTT ThingSpeak in base a una delle seguenti opzioni:
Porta | Tipo di connessione | Crittografia |
|---|---|---|
1883 | TCP | Nessuno |
8883 | TCP | TLS/SSL |
80 | WebSocket | Nessuno |
443 | WebSocket | TLS/SSL |
Quando configuri la connessione client, tieni presente quanto segue:
Se l'hardware supporta la modalità di connessione socket SSL sicura, utilizzare tale modalità per comunicare con il broker MQTT ThingSpeak ogniqualvolta possibile.
ThingSpeak implementa la funzionalità di pubblicazione e sottoscrizione MQTT con
QoS=0. Questo protocollo "fire-and-forget" significa che il tuo client non riceve alcuna conferma quando pubblichi su un canale ThingSpeak.Le connessioni MQTT scadono dopo un'ora di inattività.
Quando si utilizza una connessione WebSocket, il percorso richiesto è
/mqtt.Utilizzando la libreria Paho con Python® su Raspberry Pi®, il percorso MQTT predefinito è
"/mqtt", ma è anche possibile impostarlo con la riga di codice:client.ws_set_options("/mqtt")Con HiveMQ MQTT CLI, si imposta il percorso con l'opzione comando:
mqtt pub … -ws -ws:path /mqtt …
Vedi anche
Publish to a Channel Feed | Publish to a Channel Field Feed | Subscribe to a Channel Field Feed | Subscribe to a Channel Feed
Argomenti
- Risoluzione dei problemi di pubblicazione MQTT
- API MQTT
- Pubblica e iscriviti a un canale ThingSpeak utilizzando Secure MQTT
- Pubblica e iscriviti a un canale utilizzando il client MQTT desktop
- Pubblica su un canale ThingSpeak utilizzando un client Particle Device tramite MQTT
- Pubblica utilizzando WebSocket in Python su un Raspberry Pi
- Utilizza Particle Photon Client per iscriverti agli aggiornamenti del canale
- Risoluzione dei problemi di MQTT Subscribe
- Utilizza Particle Photon Client per iscriverti agli aggiornamenti del canale