Changes

Jump to: navigation, search
no edit summary
{{InfoBoxTop}}
{{AppliesToSBCLynx}}
{{AppliesTo AXEL ULite AN}}
{{AppliesTo SBC Lynx AN}}
{{AppliesToIoT}}
{{AppliesTo IoT AN}}
{{InfoBoxBottom}}
{{WarningMessage|text=This application note was validated against specific versions of the kit only. It may not work with other versions. Supported versions are listed in the ''History'' section.}}
== History ==
{| class="wikitable" border="1"
|May 2017
|First draft
|-
|0.6.0
|May 2017
|Added section "Configuring SBC Lynx as an MQTT broker"
|-
|}
==Introduction==
[[:Category:SBC_Lynx|SBC Lynx ]] is extremely flexible in terms of [[Connectors,_buttons_and_switches_(SBC_Lynx)|communication interfaces]] and [[Additional_industrial_I/Os_(XUAL)|I/O ports]]. When used in combination with a Linux distribution such as [[XUELK-AN-002:_Running_Debian_distribution|Debian]], it is an ideal solution to implement compact highly-integrated cost-effective gateways/supervisors for [http://internetofthingsagenda.techtarget.com/definition/Industrial-Internet-of-Things-IIoT Industrial Internet of Things applications (IIoT)].
IIoT is a vast field that includes several disciplines. At field level, the typical IIoT system requires
==Device-to-device communications==
===Configuring SBC Lynx as a an MQTT broker===This example shows how to install a an MQTT broker on SBC Lynx, running Debian distribution. "MQTT, a simple, lightweight, publish/subscribe messaging protocol on top of the TCP/IP protocol, is the ideal protocol for the emerging IoT world" [1] and is becoming one on the most common protocols used for machine-to-machine communications.
In contrast to HTTP with its request/response paradigm, MQTT is based on a publish/subscribe model, as depicted in the following image. This makes it suitable for "Internet of Things" messaging where even highly constrained devices are used (low power sensors, mobile devices, embedded computers, microcontrollers, etc.).
[[File:MQTT-architecture.png|thumb|center|600px]]
Publish/Subscribe is an event-driven way of communicating and it enables messages to be pushed to clients. The central communication point is the MQTT broker (server). It is in charge of routing all messages between the senders and the rightful receivers. Each client (sensors) that publishes (transmits) a message to the broker includes a topic into the message. The topic is the routing information for the broker. Each client that wants to receive messages subscribes to a certain topic and the broker delivers all messages with the matching topic to the client. For more details, please refer to the publicly available resource resources such as [http://www.steves-internet-guide.com/mqtt/ this link].
Eclipse Mosquitto™ broker will be installed on SBC Lynx. Eclipse Mosquitto™ is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1.
First, we need to check the Linux distribution installed The procedure was tested on the sbcan [[XUELK-lynx board (as there are different repositories of mosquito broker for the different debian distribution)To check the the distribution installed on the board we use the command lbs_release_a 1. Login to the sbcAN-lynx board with root privileges ( sudo ) and run the above command  Here in below is the result after we execute the above command on the 002:_Running_Debian_distribution|SBC-lynx board root@arm:~# lsb_release -aNo LSB modules are available.Distributor ID: Lynx running DebianDescription: Debian GNU/Linux 8Jessie distribution]].7 (jessie)Release: 8.7Codename: Jessie  From the resultFirst, the debian distribution is “Jessie” 2. Import import the repository package signaling key:<pre class="board-terminal">
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquito-repo.gpg.key
</pre>
3.We need to make the reposioty available for the mqtt
Make the reposioty available for the mqtt:
<pre class="board-terminal">
cd /etc/apt/sources.lit.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
</pre>
4. Add the Install Mosquitto<pre class="board-terminal">sudo apt-get updatesudo apt-get install mosquitto repository by given below commands</pre>
Then one of the following, depending on which version of debian you are using:
sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
Source.ist.d$ Install Mosquitto developer libraries to develop MQTT clients<pre class="board-terminal">sudo wget http:apt-get install libmosquitto-dev<//repo.mosquitto.org/debian/mosquitto-jessie.listpre>
(Here in this case, our sbcExecute the following command to install Mosquitto client packages<pre class="board-terminal">sudo apt-get install mosquitto-lynx board distribution’s debian distribution is Jessie)clients5. update the package</pre>
List.d$ sudo apt-get update
6. Install mosquito Ensure that Mosquitto broker is running<pre class="board-terminal">sudo apt-get install mosquitoservice mosquitto status</pre>
7. Install Mosquitto developer libraries to develop MQTT clientssudo apt-get install libmosquitto-dev8. Execute To verify that the given below command to install Mosquitto client packages$sudo apt-get install mosquitto-clients9. Ensure that Mosquitto broker is running$sudo service mosquitto statusproperly, you can perform this simple test.
 10. simple test of the broker Open a terminal and issue the given below this command to subscribe the topic “mqtt”<code>mqtt</code>1$mosquitto_sub -h localhost -t "mqtt<pre class=" board-vOpen another terminal and issue the given below command to publish message to the topic “mqtt”">1$mosquitto_pub mosquitto_sub -h localhost -t "mqtt" -m "Hello MQTT"vNow the message “Hello MQTT” will be displayed in the first terminal where the topic “mqtt” is subscribed.</pre>
Open another terminal and issue the given below command to publish message to the topic <code>mqtt</code>
<pre class="board-terminal">
mosquitto_pub -h localhost -t "mqtt" -m "Hello MQTT"
</pre>
Now, we can also test the functionality of message <code>Hello MQTT</code> will be displayed in the installed broker (Mosquito), we will need two client one as a publisher and one as subscriberfirst terminal where the topic <code>mqtt</code> was subscribed.
==References==
dave_user, Administrators
5,144
edits

Navigation menu