Sei qui

Se mai vi fosse passato per la mente di utilizzare delle periferiche per la domotica, spulciando i vari articoli vi sarete sicuramente imbattuti nella necessita di disporre di un Brocker per il protocollo MQTT, in questo articolo vedremo come configurare un semplice e funzionale Broker sul nostro Raspberry.

La scelta del software ricade sul Mosquitto-broker ‘server’ ed il suo relativo client.

Installiamo Mosquitto

Come sempre prima di tutto aggiorniamo il nostro Raspberry Pi

sudo apt update

sudo apt install -y mosquitto mosquitto-clients

Configuriamo il broker Mosquitto

Tutte le forme di restrizioni, ad esempio ID client, nome utente / password, argomento ecc., sono implementate sul broker MQTT.

Una volta implementato sul broker queste regole, spetta ai cliente rispettare queste restrizioni al fine di connettersi per inviare messaggi di subscribe o publish

Per configurare il broker Mosquitto dovrai:

  • Crea un file di password
  • Modifica il file conf per forzare l'uso della password.

Creazione del nuovo file di password

Il file della password conterrà il tuo nome utente e la password crittografata. Eseguire il comando seguente per creare e aggiungere un utente a questo file.

sudo mosquitto_passwd -c /etc/mosquitto/passwd [nome_utente]



Quindi, ti verrà chiesta la password due volte, inseriamola.

Ora dobbiamo fornire la posizione del file della password al file di configurazione del broker Mosquitto. Per farlo, apri il file mosquitto.conf usando il seguente comando,

sudo nano /etc/mosquitto/mosquitto.conf

E aggiungi le seguenti tre voci al file mosquitto.conf,

listener 1883 10.0.0.1
password_file /etc/mosquitto/passwd
allow_anonymous false


    
  • listener 1883 10.0.0.1: Configura il broker MQTT per ascoltare le connessioni sulla porta 1883 solo sull'indirizzo IP specificato (10.0.0.1). Questo limita l'accesso al broker da questo indirizzo IP.

  • password_file /etc/mosquitto/passwd: Specifica il percorso del file delle password. Questo file contiene le credenziali degli utenti autorizzati ad accedere al broker Mosquitto.

  • allow_anonymous false: Disabilita l'accesso anonimo, permettendo solo agli utenti autenticati (presenti nel file delle password) di connettersi al broker.

Ora non ci resta che abilitare l’attivazione automatica al boot di Mosquitto ed avviare il servizio, digitiamo:

sudo systemctl enable mosquitto.service

Se vogliamo sapere quale versione è stata installata possiamo digitare

mosquitto -v


Ora avvia il broker con il seguente comando,

sudo systemctl start mosquitto.service

Se è necessario verificare l'autenticazione, è possibile utilizzare il comando seguente, (è necessario installare i client mosquitto per farlo)

Testiamo Mosquitto

Vediamo adesso come è possibile pubblicare e ricevere dei messaggi con l’ausilio del terminale utilizzando il client di Mosquitto.

SUBSCRIBE

Per prima cosa, apriamo una nuova finestra del terminale e inseriamo il seguente comando:

mosquitto_sub -d -t mynetbrick

In questo modo, ci siamo iscritti al topic mynetbrick e in questa finestra possiamo visualizzare i messaggi ricevuti.

PUBLISH

Per pubblicare un messaggio sul topic mynetbrick, aprire una seconda finestra del terminale e inviare il comando:

mosquitto_pub -d -t mynetbrick -m "Hello world!"

 

Una volta pubblicato il messaggio, il client sottoscritto al topic mynetbrick, riceverà il messaggio “Hello world!”.