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
67:11db02bb93e1 2016-08-04 changed 'puts' calls to PUTS and defined them in hardware.h along with PRINTF so we can set them all to pc.puts File  Diff  Annotate
66:b2425419b0cc 2016-08-04 Need to unconditionally set the APN string for new boards! File  Diff  Annotate
64:09004cd610df 2016-08-01 Replaced all printf's with PRINTF=pc.printf; moved to latest mbed library File  Diff  Annotate
63:90d7c69993cd 2016-08-01 Changed the mdm UART from SerialBuffered to MODSERIAL so there will only be one type. File  Diff  Annotate
62:73c564e883e9 2016-08-01 Modified wnccontrol.cpp to use the serial port definitions in hardware.h instead of those locally declared. File  Diff  Annotate
53:dcccf2881fa0 2016-07-26 Added conditional debug.; Removed printf("D %s\r\n") which I never should have checked in this past weekend.; Left code with intermediate level of debug turned on. File  Diff  Annotate
46:da9d788f5d5a 2016-07-24 Exception was not WNC issue or parsing. Being caused by bad conversion from string to char array. FIXED! File  Diff  Annotate
45:a836eecd5d12 2016-07-24 Setup no response string for when WNC is down. Now erases string in case user manipulated it between calls. File  Diff  Annotate
44:c95a85b5cf92 2016-07-24 Part 2 fix for exception after no response from WNC sockread. File  Diff  Annotate
43:6821a9c78c4b 2016-07-24 Put back in 1ms between chars sent to WNC.; FIXED: exception error due to sockread on no response and string search results not checked! File  Diff  Annotate
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