Pubnub demo for AT&T IoT Starter Kit. Functionally similar to the Flow demo.

Dependencies:   FXOS8700CQ MODSERIAL mbed

http://pubnub.github.io/slides/workshop/pictures/broadcast.png

Pubnub demo for AT&T IoT Starter Kit

This demo is functionally similar to the Flow demo, so you can find general information here: https://developer.mbed.org/users/JMF/code/Avnet_ATT_Cellular_IOT/.

The only difference is that we use Pubnub to publish the measurements and subscribe to receiving the instructions to set the LED.

Settings

Pubnub related settings are:

Pubnub settings in `config_me.h`

PUBNUB_SUBSCRIBE_KEY
PUBNUB_PUBLISH_KEY
PUBNUB_CHANNEL

All are documented in their respective comments.

Pubnub context class

Similar to Pubnub SDKs, we provide a Pubnub context class. It is defined in pubnub.h header file and implemented in pubnub.cpp.

It provides only the fundamental "publish" and "subscribe" methods. They are documented in the header file.

This class is reusable in other code (it is not specific to this demo), it has a very narrow interface to the AT&T IoT cellular modem code. For example of use, you can look at the main() (in main.c).

Sample of published data

Published message w/measurement data

{"serial":"vstarterkit001","temp":89.61,"humidity":35,"accelX":0.97,"accelY":0.013,"accelZ":-0.038}

Don't worry, nobody got burnt, the temperature is in degrees Fahrenheit. :)

Publish a message (from, say, the Pubnub console http://pubnub.com/console) of the form {"LED":<name-of-the-color>} on the channel that this demo listens to (default is hello_world) to turn the LED to that color on the Starter Kit:

Turn LED to red

{"LED":"Red"}

Turn LED to green

{"LED":"Green"}

Turn LED to blue

{"LED":"Blue"}

Revisions of wnc_control.cpp

Revision Date Message Actions
42:be4b9ee3a615 2016-07-24 Re-did debug output.; Added poll of Cellular connectivity of WNC before every command.; Eliminated calling hardware init unless the initial and subsequent software init fails.; Added one-shot to commands that the WNC seems sensitive too. File  Diff  Annotate
40:aec4d09fde23 2016-07-23 Turned back on hardware init. Without it really stops responding completely. Hardware init does not always make it work but it seems to sometimes and so is better without it. YMMV. Still have not found the root cause of WNC no response. File  Diff  Annotate
39:1996eaec02d6 2016-07-23 Changed sockwrite to wait a long time now, for 31 seconds (something to try since the connect timeout is set to 30 seconds).; ; Corrected max length string to the 1500 WNC limit (was 99999). File  Diff  Annotate
38:564b312a719f 2016-07-23 Changed timeout for sockconn. File  Diff  Annotate
36:d4782eabff43 2016-07-23 Added printout of WNC cellular signal quality and SIM status. Tried a new approach to commanding the WNC for init. File  Diff  Annotate
34:1a4498e3580e 2016-07-22 Potential solution for missing characters at end of socket read payload. File  Diff  Annotate
32:1e052a3e73fe 2016-07-22 Removed in between character delays when talking to the WNC. File  Diff  Annotate
30:33be8e2992f3 2016-07-22 sockread returns how many read. Software init only hardware re-inits when no response, otherwise loops until software init done. Per WNC now wait 20mS between AT commands. File  Diff  Annotate
22:41e6c417ace1 2016-07-13 Added a 10mS delay to the socket read function. 10mS for the first read and then 10mS in between each retry. File  Diff  Annotate
19:f89baed3bd6f 2016-07-13 Right before the SOCKCONN during the WNC software initialization once in a while the WNC seems to be dropping a char that is sent to it, 'A' specifically. So I put in 2 "AT" commands right before the SOCKCONN and that seems to clean it up. File  Diff  Annotate
10:df54436ecd38 2016-07-11 Changed wnc control code so that it can't do a read or a write to a socket if the socket is not opened successfully. File  Diff  Annotate
2:0e2ef866af95 2016-07-10 Adding in WNC code from Fred File  Diff  Annotate