• Home
  • Chi siamo
  • Contatti

FE

  • Design
    • Digital
    • Firmware&Debug
    • PCB
    • Power & Motor
    • Sensor & MEMS
    • Wireless-RF
  • Test & Measurements
    • Compatibilità Elettromagnetica
    • Software/EDA
    • Strumentazione
  • Embedded
    • FPGA
    • Lighting & Opto
    • Microcontrollori
    • Single board
  • Risorse
  • Annate FE
    • FE 2003
    • FE 2004
    • FE 2005
    • FE 2006
    • FE 2007
    • FE 2008
    • FE 2009
    • FE 2010
    • FE 2011
    • FE 2012
    • FE 2013
    • FE 2014
    • FE 2015
    • FE 2016
    • FE 2017
    • FE 2018

MQTT è meraviglioso, utilizziamolo per i nostri dispositivi IoT con Raspberry Pi

guida veloce home automation diy mqtt mosquitto raspberry

MQTT è un protocollo di comunicazione binario semplice e versatile, creato nel 1999 con lo scopo di ottenere un protocollo che potesse ridurre al minimo l’utilizzo della banda nelle comunicazioni tra dispositivi ed ottimizzare il consumo energetico per applicazioni che prevedono un’alimentazione a batterie.
Questo di oggi non vuole essere un articolo tecnico, ma una guida veloce per l’integrazione di MQTT nei propri dispositivi IoT DIY, con una panoramica sulle sue caratteristiche principali e possibili applicazioni.
Si tratta di protocollo di comunicazione dai mille utilizzi, quindi vediamo subito di cosa si tratta, come funziona e come testarlo su una board Raspberry Pi.

Il protocollo MQTT, per scambiare informazioni, sfrutta un meccanismo di pubblicazione e sottoscrizione (pubblish-subscrive) di messaggi tramite un apposito message broker, in grado di gestire migliaia di client contemporaneamente.

Si tratta di un’ottima alternativa al modello client/server dove ad instaurare una connessione diretta con il server è il client .

In MQTT, se un determinato client vuole comunicare con un altro, pubblica un messaggio su un certo argomento (detto topic) sul message broker.

Il message broker ha il compito di filtrare e distribuire le comunicazioni tra pubblisher e subscriver.

Ogni client può iscriversi a molteplici topics e ogni volta che viene pubblicato un nuovo messaggio in un determinato topic, il message broker lo distribuisce a tutti i client iscritti a quel determinato topic.

 

Il Topic è una stringa UTF-8 con struttura simile a quella di una directory e i livelli dei topics, sono separati da uno slash.

Possiamo quindi creare dei topic secondo determinati criteri, ad esempio per una casa possiamo fare in modo che le rilevazioni di un sensore PIR, vengano pubblicate sul topic casa/stanza da letto/sensori/PIR.

mqtt_broker_example

Per nominare i livelli è possibile utilizzare degli spazi e caratteri speciali, ma è bene tenere presente che utilizzare delle lettere minuscole o maiuscole per il nome di un determinato livello, lo rende diverso (Es. casa != Casa).

 

Oltre a poter eseguire l’iscrizione ad un topic specifico, utilizzando il simbolo  – # – è possibile iscriversi a tutti i topic di livello successivo a quello indicato.

Es: casa/stanza da letto/sensori/# in questo modo, si è eseguita la sottoscrizione per tutti i topics dei sensori.

 

Per la trasmissione di messaggi tramite MQTT, è necessario conoscere IP, porta del broker e i parametri per l’autenticazione quando previsti.

Nel caso in cui alcuni destinatari non dovessero essere online nel momento in cui viene pubblicato qualcosa, il broker salva i messaggi ricevuti e li invia ai client interessati appena tornano ad essere online.

 

Prendendo come esempio un sistema di monitoraggio della temperatura ambientale, per inviare i dati rilevati del sensore, il sistema dovrà:

  1. Instaurare una connessione con il broker;
  2. Pubblicare in un determinato topic le rilevazioni effettuate (es. casa/stanza da letto/sensori/temperatura).

 

Per accedere in tempo reale alle rilevazioni che vengono trasmesse dal sistema di monitoraggio, si dovrà:

  1. Instaurare una connessione con il broker;
  2. Sottoscriversi al topic sul quale vengono pubblicate le rilevazioni ed aspettare la ricezione delle rilevazioni.

 

 

Per maggiori informazioni sulle funzioni offerte da MQTT, vi rimando al sito ufficiale.

Integrazione nei propri progetti

smart-home-example

Questo particolare protocollo di comunicazione, permette di creare un sistema estremamente versatile, dove è possibile accedere in tempo reale a qualsiasi dato che passa dal broker.
Ad esempio, in OpenHAB tramite l’addon MQTT binding ed una veloce configurazione tramite PAPER UI, risulterà molto semplice collegare dei sensori e attuatori per configurare il proprio sistema di Home Automation personalizzato.
Lo scambio di messaggi tra i dispositivi avviene molto velocemente.

Broker MQTT

Per cominciare ad utilizzare sin da subito MQTT con i nostri dispositivi IoT DIY, prima di tutto è necessario munirsi di un broker.
Per lo scopo esistono diversi software e possibili soluzioni, incluse quelle di Cloud MQTT Broker, ma siccome sono sicuro che vogliate fare le cose per bene, velocemente e vi fidate di me (se non lo fate tranquilli, lo capisco e sono d’accordo con voi) sceglierete di installare il software Mosquitto su una board Raspberry Pi con SO Raspbian.

Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers.

The MQTT protocol provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers.

The Mosquitto project also provides a C library for implementing MQTT clients, and the very popular mosquitto_pub and mosquitto_sub command line MQTT clients.

Trovate maggiori informazioni su Mosquitto nel sito ufficiale.

 

Vi ho promesso una guida veloce, perciò basta perder tempo, vediamo come procedere.

Installiamo mosquitto su Raspbian

rpilogo

Ho scelto di utilizzare una board Raspberry Pi model B, ma naturalmente è possibile scegliere la board che si preferisce.

 

Per l’installazione di Mosquitto ed il suo relativo client, da terminale digitare i seguenti comandi:

sudo apt update

sudo apt install -y mosquitto mosquitto-clients

Confermare l’installazione ed aspettare che vengano scaricati ed installati i pacchetti.

 

Per abilitare l’attivazione automatica di Mosquitto ad ogni accensione del lampone in fase di boot, sempre da terminale digitare:

sudo systemctl enable mosquitto.service

 

Digitando il seguente comando, sul terminale verrà visualizzata la versione di Mosquitto installata.

mosquitto -v

Testiamo Mosquitto su raspberry pi

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 FirstTopic

 

mosquitto_sub_test_1

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

Publish

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

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

 

mosquitto_pub_test

 

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

 

mosquitto_sub_test_1

 

Sicurezza

house-securePer rendere il collegamento il più sicuro possibile, specialmente per applicazione che prevedono di esporre il sistema online, è buona norma quella di settare alcuni parametri di sicurezza, partendo dall’impostazione di almeno un username e relativa password per il broker MQTT.
Prossimamente vedremo quali sono i migliori accorgimenti per rendere sicuro il proprio sistema con alcuni esempi.

 

 

Anticipazioni

Presto approfondiremo l’utilizzo di MQTT per la realizzazione di dispositivi IoT DIY, focalizzandoci sulla creazione di dispositivi per la domotica DIY.

Fra le varie cose, avremo a che fare con:round fe

  • Integrazione con OpenHAB;
  • Progetti con moduli ESP e broker MQTT;
  • Integrazione di Google Home per il controllo vocale;
  • Configurazioni ad hoc di un sistema duratuto;
  • Ottimizzazione per un sistema stabile e sicuro.

 

 

Stay Tuned!

Apr 15, 2019Ivan Scordato
Hack sensore PIR con ESP8266 e NodeREDOLED a matrice passiva. Un mondo di contrasti e di colori
You Might Also Like
 
Espandiamo Raspberry Pi
 
Domotica Low Cost con openHAB e Raspberry PI 3

Lascia un commento Annulla risposta

Ivan Scordato
15 Aprile 2019 Design, Wireless-RFguida MQTT, home automation IoT, installazione mosquitto raspberry pi, mosquitto, MQTT, Raspberry Pi

Fare elettronica
BMS: sistema di monitoraggio e gestione delle batterie al litio
15 Dicembre 2020
Soluzioni avanzate per le applicazioni embedded
9 Dicembre 2020
Intelligenza Artificiale e Sistemi Embedded
Intelligenza Artificiale e Sistemi Embedded
8 Dicembre 2020
Stazioni di ricarica per i veicoli elettrici
2 Dicembre 2020
Tesla Model X hackerata col Raspberry Pi
25 Novembre 2020
ULTIMI ARTICOLI
  • Potenza ed efficienza sempre più ai massimi livelli 14 Gennaio 2021
  • PCB per dispositivi indossabili: note di design 14 Gennaio 2021
  • Applicazioni dei display Memory in Pixel (MIP) 7 Gennaio 2021
  • Tanta energia in più con i Supercondensatori 7 Gennaio 2021
  • Trasformazione della potenza AC/DC vista al microscopio 18 Dicembre 2020
Domotica DIY
Comandare un semaforo a 10000 Km con l’ESP32
13 Maggio 2020
Come pilotare differenti carichi a diverse frequenze di commutazione con MCU PIC e Ladder
28 Aprile 2020
Google Home
Comandiamo Home Assistant con Google Home grazie a Tasker – Video Tutorial
17 Maggio 2018
Domotizziamo una tapparella
1 Maggio 2018
hubspot






About
Rss Feed
Privacy
Contattaci

 


Tecno, il network che guida le imprese

Supportiamo le aziende nel rafforzare il proprio brand e nel generare contatti B2B tramite il nostro network editoriale, gli eventi e la formazione, con l’obiettivo di aiutarle a cogliere le nuove opportunità del settore.

 


Testate
LUMI 4 INNOVATION
A&V ELETTRONICA
FARE ELETTRONICA

Indirizzo
Via Console Flaminio 19
20134 Milano   MI


Eventi
LUMI EXPO
FORTRONIC



Contatto
marketing@tecnoimprese.it


Formazione
LUMI ACADEMY




Telefono
+39 02 45947830


Osservatori di mercato
ASSODEL
CONSORZIO ELINT


 

Consorzio Tecno Scarl – P.IVA IT09998410964 – © Consorzio Tecno – ALL RIGHTS RESERVED - Informativa estesa cookies

Questo sito utilizza cookie, anche di terze parti, che ne permettono il corretto funzionamento. Cliccando in un punto qualsiasi dello schermo, effettuando un'azione di scroll o chiudendo questo banner, presti il consenso all'uso di tutti i cookie. Accetto Informativa Estesa
Privacy & Cookies Policy
Necessario Sempre attivato