zephyr/samples/net/paho_mqtt_clients/subscriber
Anas Nashif d622b09bc0 samples: tests: remove obsolete KERNEL_TYPE and kernel variables
Remove those from Makefiles and testcase.ini, we now support unified kernel
only and sanitycheck script now knows how to deal with this.

Change-Id: I853ebcadfa7b56a4de5737d95f2ba096babb2e13
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2016-11-04 15:47:25 -04:00
..
src mqtt: fix: Remove ping function call 2016-08-10 14:41:00 +00:00
KNOWN_ISSUES mqtt: Add KNOWN_ISSUES file 2016-08-18 23:56:05 -05:00
Kbuild
Makefile samples: tests: remove obsolete KERNEL_TYPE and kernel variables 2016-11-04 15:47:25 -04:00
README samples/net: Update README file w.r.t compiler warnings 2016-08-11 17:43:16 +00:00
prj_galileo.conf mqtt: fix: Remove ping function call 2016-08-10 14:41:00 +00:00

README

MQTT sample using the Paho's MQTT Packet Library.


Requirements
------------

* Ethernet LAN for testing purposes.

* MQTT 3.1.1 Gateway.

  NOTE for Debian/Ubuntu users: it seems that the mosquitto server
       included with these distros does not support MQTT 3.1.1.
       Uninstall the mosquitto server and follow the instructions
       provided at the mosquitto website:

                    http://mosquitto.org/download/

       to update the application.

* Galileo Gen 2 Development Board.

* USB-UART cable: CH340, FTDI 6-pin or equivalent for debugging.

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
---------------------

* 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_clients/publisher, 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.

* Read src/main.c, change the IP addresses according to the LAN
  environment.

* 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
-----

* Open a terminal window and type:

  mosquitto -v

* Connect the USB-UART cable to the Galileo. Open a terminal and run:

  screen /dev/ttyUSB0 115200

* Connect Galileo to the LAN, Turn on the board.

* Once Galileo is connected to the MQTT Gateway, on the mosquitto
  terminal window something like this will appear:

    1469492516: mosquitto version 1.4.9 (build date 2016-07-01 15:07:21+0000) starting
    1469492516: Using default config.
    1469492516: Opening ipv4 listen socket on port 1883.
    1469492516: Opening ipv6 listen socket on port 1883.
    1469492531: New connection from 192.168.1.110 on port 1883.
    1469492531: New client connected from 192.168.1.110 as zephyr (c1, k0).
    1469492531: Sending CONNACK to zephyr (0, 0)
    1469492531: Received SUBSCRIBE from zephyr
    1469492531: 	sensors (QoS 2)
    1469492531: zephyr 2 sensors
    1469492531: Sending SUBACK to zephyr


* Open another terminal window, and type:

  mosquitto_pub -t "sensors" -m "DOOR:OPEN" -q 1

* On the screen window, the following text will be shown:

    --------------------------------
    [cb_publish:121] Received msg
    [cb_publish:129] Topic: sensors
    [cb_publish:133] Msg: DOOR:OPEN
    [cb_publish:135] QoS: 1
    [cb_publish:137] Pkt id: 1
    --------------------------------

* QoS values can be changed. For QoS 0, type:

  mosquitto_pub -t "sensors" -m "DOOR:OPEN" -q 0

  For QoS 2, just change "-q 0" for "-q 2"


Troubleshooting
---------------

  If the screen terminal window shows the following:


    --------------------------------
    Pingreq, rc: ERROR

    --------------------------------

    It may be caused by:

      * A message was received while processing a PING handshake
        with the server. This is the expected behavior.

      * A network error. Check the LAN or the mosquitto server.


Compiler Warnings
-----------------

The network layer used in this sample code will be replaced once the
new IP stack is ready. So, "netz" is tagged as "deprecated" and the
following warnings will be displayed by the compiler:

warning: 'netz_tx' is deprecated [-Wdeprecated-declarations]