<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MQTT Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/mqtt/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/mqtt/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 11 Jan 2021 18:48:26 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>MQTT Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/mqtt/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MQTT, installare Mosquitto sul Raspberry PI</title>
		<link>https://logicaprogrammabile.it/mqtt-installare-mosquitto-raspberry-pi-progetti-iot/</link>
					<comments>https://logicaprogrammabile.it/mqtt-installare-mosquitto-raspberry-pi-progetti-iot/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 11 Jan 2021 07:00:45 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[MQTT]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6442</guid>

					<description><![CDATA[<p>Utilizzare MQTT nei progetti iot MQTT (Message Queue Telemetry Transport) è un protocollo di comunicazione progettato per trasferire messaggi occupando una banda molto ridotta. Per questo viene spesso impiegato in ambito IoT. Il metodo di trasmissione e ricezione dei messaggi è asincrono e si basa...</p>
<p>The post <a href="https://logicaprogrammabile.it/mqtt-installare-mosquitto-raspberry-pi-progetti-iot/">MQTT, installare Mosquitto sul Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Utilizzare MQTT nei progetti iot</h1>
<p>MQTT (Message Queue Telemetry Transport) è un protocollo di comunicazione progettato per trasferire messaggi occupando una banda molto ridotta. Per questo viene spesso impiegato in ambito IoT. Il metodo di trasmissione e ricezione dei messaggi è asincrono e si basa su una architettura publish/subscribe (mittente/destinatario).</p>
<p>Il mittente ed il destinatario non possono però scambiarsi messaggi direttamente tra loro ma necessitano di un intermediario chiamato dispatcher o broker.</p>
<p>Lo scambio di dati avviene in questo modo: il mittente (publisher) invia un messaggio al dispatcher. I destinatari, a loro volta, scelgono quali messaggi ricevere comunicandolo al dispatcher. Il dispatcher quindi invia il messaggio solo ai dispositivi che si nono iscritti (subscribe) per la ricezione dei messaggi.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-6446" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/pub_sub_mqtt.jpg" alt="" width="603" height="228" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/pub_sub_mqtt.jpg 603w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/pub_sub_mqtt-300x113.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/pub_sub_mqtt-150x57.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/pub_sub_mqtt-585x221.jpg 585w" sizes="(max-width: 603px) 100vw, 603px" /></p>
<p><span id="more-6442"></span></p>
<p>Se al dispatcher sono collegati diversi mittenti e destinatari come è possibile scegliere a chi mandare il messaggio o da chi riceverlo?</p>
<h2>MQTT utilizza i Topics</h2>
<p>Il meccanismo di scambio dati si basa utilizzando i topics, una struttura gerarchica simile a quella per la gestione delle directory in un files system.</p>
<p>Quindi il mittente decide un topic sul quale pubblica un messaggio, ad esempio</p>
<pre>/sensore1</pre>
<p>il destinatario può leggere il messaggio abbonandosi al topics:</p>
<pre>/sensore1</pre>
<p>La figura illustra quanto detto:</p>
<p><img decoding="async" class="aligncenter size-full wp-image-6447" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/send_receiv_mqtt.jpg" alt="" width="834" height="436" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/send_receiv_mqtt.jpg 834w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/send_receiv_mqtt-300x157.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/send_receiv_mqtt-150x78.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/send_receiv_mqtt-768x401.jpg 768w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/send_receiv_mqtt-585x306.jpg 585w" sizes="(max-width: 834px) 100vw, 834px" /></p>
<p>Riepiloghiamo i concetti in questi pochi punti:</p>
<ul>
<li>I messaggi non sono inviati direttamente ai destinatari;</li>
<li>Viene utilizzato un dispatcher o broker che permette lo scambio dei messaggi tra mittenti(publisher) e destinatari(subscriber)</li>
<li>Il dispatcher organizza i messaggi in topics e gli ridistribuisce ai destinatari che si sono abbonati al topic.</li>
<li>Tutti i dispositivi collegati al dispatcher possono inviare o ricevere messaggi.</li>
<li>Solitamente il dispatcher non memorizza i messaggi.</li>
</ul>
<h2>Installare MOSQUITTO</h2>
<p>L&#8217;elemento fondamentale in una architettura <strong>MQTT</strong> è il dispatcher o <strong>broker</strong>. Se i nostri dispositivi sono collegati ad internet possiamo utilizzare un servizio web oppure nei casi di un sistema stand alone, utilizziamo un nostro broker da installare su una scheda Raspberry PI.</p>
<p>Un software open source che potrebbe essere utilizzato per i nostri lavori è <a href="https://mosquitto.org/">Eclipse Mosquitto</a>, un broker molto leggero installabile su single board computer come il Raspberry PI.</p>
<p>Apriamo un terminale sul nostro Raspberry, o colleghiamoci con un client ssh, digitiamo il seguente commando:</p>
<pre>sudo apt-get install mosquitto</pre>
<p>premiamo invio e attendiamo il download e l&#8217;installazione del software.</p>
<p>Testiamo l&#8217;installazione verificando che il broker MQTT sia in esecuzione:</p>
<pre>sudo service mosquitto status</pre>
<p><img decoding="async" class="aligncenter size-full wp-image-6451" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mosquitto_status.jpg" alt="" width="757" height="402" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mosquitto_status.jpg 757w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mosquitto_status-300x159.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mosquitto_status-150x80.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mosquitto_status-585x311.jpg 585w" sizes="(max-width: 757px) 100vw, 757px" /></p>
<p>in particolare bisogna notare la presenza della stringa Active: active (running).</p>
<p>Per fermare il servizio utilizziamo il seguente comando:</p>
<pre>sudo service mosquitto stop</pre>
<p>mentre per avviarlo digitiamo:</p>
<pre>sudo service mosquitto start</pre>
<p>oppure stoppare e riavviare il servizio con un singolo comando:</p>
<pre>sudo service mosquitto restart</pre>
<h2>Installare client MQTT</h2>
<p>Una volta installato il broker sul Raspberry PI eseguiamo delle prove utilizzando un programma per pubblicare un topic e un programma per abbonarsi.</p>
<p>Digitando il seguente comando installeremo quanto richiesto:</p>
<pre>sudo apt-get install mosquitto-clients</pre>
<p>Attendiamo il completamento dell&#8217;installazione e se non si sono verificati errori dovremmo avere disponibili i seguenti programmi</p>
<pre>mosquitto_sub
mosquitto_pub</pre>
<p>come si intuisce dal nome il primo è il programma che funge da <strong>subscriber</strong> mentre il secondo è il programma che funge da <strong>publisher</strong>.</p>
<p>Per poter eseguire un semplice test apriamo due finestre terminale o, se ci colleghiamo al Raspberry da un altro host, due sessioni ssh.</p>
<p>Sul primo terminale abboniamoci a un topic eseguendo questo commando:</p>
<pre>mosquitto_sub -h localhost -t "mio_topic"</pre>
<p>(ci stiamo abbonando al topic denominato <strong>mio_topic</strong> che viene gestito dal broker che gira sulla macchina <strong>localhost</strong>)</p>
<p>Nella seconda finestra terminale lanciamo il publisher per inviare un messaggio al broker sul topic <strong>mio_topic</strong>:</p>
<pre>mosquitto_pub -h localhost -t "mio_topic" -m "ciamo mondo"</pre>
<p>Nelle immagini seguenti potete osservare lo scambio dei messaggi</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6454" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic.jpg" alt="" width="757" height="402" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic.jpg 757w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic-300x159.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic-150x80.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic-585x311.jpg 585w" sizes="auto, (max-width: 757px) 100vw, 757px" /></p>
<p>Nel primo terminale mi metto in ascolto sul topic chiamato <strong>mio_topic</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6455" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_1.jpg" alt="" width="661" height="418" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_1.jpg 661w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_1-300x190.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_1-150x95.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_1-420x265.jpg 420w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_1-585x370.jpg 585w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>sul secondo terminale invio il messaggio &#8220;ciao mondo&#8221; al topic <strong>mio_topic</strong></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6456" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_2.jpg" alt="" width="757" height="402" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_2.jpg 757w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_2-300x159.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_2-150x80.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/mio_topic_2-585x311.jpg 585w" sizes="auto, (max-width: 757px) 100vw, 757px" /></p>
<p>Nel primo terminale osservo la ricezione del messaggio<strong> &#8220;ciao mondo&#8221;</strong>.</p>
<p>Questi due programmi sono molto utili per esercitarci e capire meglio come funziona il protocollo <strong>MQTT</strong>.</p>
<p>The post <a href="https://logicaprogrammabile.it/mqtt-installare-mosquitto-raspberry-pi-progetti-iot/">MQTT, installare Mosquitto sul Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/mqtt-installare-mosquitto-raspberry-pi-progetti-iot/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
