Nozioni di base su MQTT
MQTT è un'architettura di pubblicazione/sottoscrizione sviluppata principalmente per connettere dispositivi con limiti di larghezza di banda e potenza su reti wireless. È un protocollo semplice e leggero che viene eseguito su socket TCP/IP o WebSocket. MQTT su WebSocket può essere protetto con SSL. L'architettura di pubblicazione/sottoscrizione consente di inviare messaggi ai dispositivi client senza che il dispositivo debba interrogare continuamente il server.
Il broker MQTT è il punto centrale della comunicazione ed è responsabile dell’invio di tutti i messaggi tra i mittenti e i legittimi destinatari. Un client è qualsiasi dispositivo che si connette al broker e può pubblicare o iscriversi ad argomenti per accedere alle informazioni. Un argomento contiene le informazioni di instradamento per il broker. Ogni client che desidera inviare messaggi li pubblica su un determinato argomento e ogni client che desidera ricevere messaggi si iscrive a un determinato argomento. Il broker consegna tutti i messaggi con l'argomento corrispondente ai client appropriati.
ThingSpeak™ ha un broker MQTT all'URL mqtt3.thingspeak.com
e la porta 1883
. Il broker ThingSpeak supporta sia la pubblicazione MQTT che la sottoscrizione MQTT, come mostrato nei seguenti diagrammi.
Pubblica MQTT
Questa figura descrive la struttura dell'argomento. Il broker riconosce una richiesta CONNECT
corretta con CONNACK
.
Iscrizione 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 tuo dispositivo è configurato con le credenziali necessarie affinché il tuo client MQTT possa comunicare con ThingSpeak e per autorizzare canali specifici. Utilizzare i seguenti passaggi per creare un dispositivo MQTT.
Nel menu ThingSpeak fare clic 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, scegli un canale dal menu elenco, quindi fai clic su Add Channel. Ripeti l'operazione finché non avrai tutti i canali che desideri collegare al dispositivo nell'elenco dei canali autorizzati. Imposta ciascuno per consentire la pubblicazione e consentire la sottoscrizione secondo necessità.
Fare clic su Add Device.
A questo punto, ThingSpeak genera un elenco di credenziali per il tuo dispositivo che include ID client, nome utente e password. Puoi 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 le tue credenziali adesso, poiché non avrai un'altra opportunità per 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 facendo clic su Edit. Puoi utilizzare l'ID client, il nome utente e la password nel tuo client MQTT per accedere al tuo dispositivo ThingSpeak MQTT per pubblicare e iscriverti ai suoi canali.
Nota
Puoi 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, Contact Support.
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 hai bisogno di reimpostare la password del tuo dispositivo in qualsiasi momento, puoi reimpostarla dalla pagina di modifica del dispositivo:
Selezionare Devices > MQTT.
Nell'elenco visualizzato dei tuoi 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 ha esito positivo, il broker MQTT ThingSpeak risponde con un riconoscimento della connessione, CONNACK
. Il broker MQTT risponde a una richiesta di sottoscrizione riuscita con un messaggio SUBACK
e inoltra al client tutti i nuovi dati pubblicati sul canale o sul campo sottoscritto. Per ulteriori informazioni su questi messaggi, vedere la specifica MQTT v3.1.1 . È quindi possibile pubblicare messaggi negli argomenti utilizzando il modulo 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, considera quanto segue:
Se il tuo hardware supporta la modalità di connessione socket SSL protetta, utilizza tale modalità per comunicare con il broker MQTT ThingSpeak ogni volta che è possibile.
ThingSpeak implementa la funzionalità di pubblicazione e sottoscrizione MQTT con
QoS
=0
. Questo protocollo "fire-and-forget" significa che il tuo cliente non riceve un riconoscimento 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 puoi anche impostarlo con la riga di codice :client.ws_set_options("/mqtt")
Con la CLI HiveMQ MQTT, imposti il percorso con l'opzione di 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 complementari
- Risolvere i 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 dispositivo a particelle tramite MQTT
- Pubblica utilizzando WebSocket in Python su un Raspberry Pi
- Utilizza Particle Photon Client per iscriverti agli aggiornamenti del canale
- Risolvere i problemi di abbonamento MQTT
- Utilizza Particle Photon Client per iscriverti agli aggiornamenti del canale