zephyr/samples/net/paho_mqtt_client/README

83 lines
2.1 KiB
Plaintext

MQTT sample using the Paho's MQTT Packet Library.
Requirements
------------
* An Ethernet LAN for testing purposes.
* A MQTT 3.1.1 Gateway running in the LAN.
* A Galileo Dev Board connected to the LAN.
* A FTDI 6-pin cable to see debugging information from Galileo.
The Mosquitto MQTT implementation is used in this document.
However, any MQTT 3.1.1 compliant gateway must work. See
http://mosquitto.org/ for more details.
Building instructions
---------------------
* Change src/config.h according to your network configuration.
* Download the Paho's MQTT Embedded C Library.
See http://www.eclipse.org/paho/clients/c/embedded/ for more
information about Paho's MQTT Packet Library.
Inside samples/net/paho_mqtt_client, run the following commands:
git clone https://git.eclipse.org/r/paho/org.eclipse.paho.mqtt.embedded-c paho
Now "paho" contains the MQTT Packet Library.
* make pristine && make are enough to build this sample.
* Follow the steps indicated here:
https://www.zephyrproject.org/doc/board/galileo.html
to load the binary into the Galileo Dev Board.
Usage
-----
* From a terminal, run the gateway:
mosquitto -v
* Connect the FTDI cable to the Galileo. Open a terminal and run:
screen /dev/ttyUSB0 115200
* Turn on the Galileo.
* Galileo's MQTT Client will publish to the topic "zephyr" the
following message: "Hello World from Zephyr!"
* A subscriber is needed in order to receive the messages sent by the
Galileo. For example, the following command must be executed from a
terminal to create a MQTT subscriber:
mosquitto_sub -t zephyr
If this command is executed from a computer other than the gateway,
the host must be specified.
* To publish a message, the following command can be used:
mosquitto_pub -t zephyr -m "Hello World"
The "Hello World" message must be displayed in the Galileo's debugging
console.
Final Remakrs
-------------
The provided source code perhaps does not exemplify the best way to use
Paho's MQTT in Zephyr. For example, PINGREQ must be sent periodically,
but not too often as in this use-case. Furthermore, DISCONNECT is never
used here.