Use Seeed Wifi shield and WiflyInterface to send current time to the Xively Service
Dependencies: WiflyInterface libxively mbed
Fork of Wifly_HelloWorld by
Revision 6:3c44af154da8, committed 2013-11-09
- Comitter:
- lz307
- Date:
- Sat Nov 09 01:02:05 2013 +0000
- Parent:
- 5:867d16e948eb
- Commit message:
- Use the Seeed wifi shield and WiflyInterface to send the current time to the Xively Service.
Changed in this revision
diff -r 867d16e948eb -r 3c44af154da8 WiflyInterface.lib --- a/WiflyInterface.lib Fri Aug 24 13:52:40 2012 +0000 +++ b/WiflyInterface.lib Sat Nov 09 01:02:05 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/WiflyInterface/#fb4494783863 +http://mbed.org/users/lz307/code/WiflyInterface/#3152fcc74390
diff -r 867d16e948eb -r 3c44af154da8 libxively.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libxively.lib Sat Nov 09 01:02:05 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/xively/code/libxively/#4ce6299f7535
diff -r 867d16e948eb -r 3c44af154da8 main.cpp --- a/main.cpp Fri Aug 24 13:52:40 2012 +0000 +++ b/main.cpp Sat Nov 09 01:02:05 2013 +0000 @@ -1,5 +1,10 @@ #include "mbed.h" #include "WiflyInterface.h" +#include "xively.h" +#include "xi_err.h" + +#define XI_FEED_ID 273104668 // set Xively Feed ID (numerical, no quoutes) +#define XI_API_KEY "Your API Key" // set Xively API key (double-quoted string) Serial pc(USBTX, USBRX); @@ -11,11 +16,56 @@ * - "password" is the password * - WPA is the security */ -WiflyInterface wifly(p9, p10, p25, p26, "mbed", "password", WPA); +WiflyInterface eth(p9, p10, p25, p26, "ssid", "passwd", WPA); + +int main() +{ + int s = eth.init(); //Use DHCP + + if( s != NULL ) { + printf( "Could not initialise. Will halt!\n" ); + exit( 0 ); + } + + s = eth.connect(); + + if( s == false ) { + printf( "Could not connect. Will halt!\n" ); + exit( 0 ); + } else { + printf( "IP: %s\n", eth.getIPAddress() ); + } + + xi_feed_t feed; + memset( &feed, NULL, sizeof( xi_feed_t ) ); + + feed.feed_id = XI_FEED_ID; + feed.datastream_count = 1; -int main() { - wifly.init(); // use DHCP - while (!wifly.connect()); // join the network - printf("IP Address is %s\n\r", wifly.getIPAddress()); - wifly.disconnect(); -} \ No newline at end of file + feed.datastreams[0].datapoint_count = 1; + xi_datastream_t* orientation_datastream = &feed.datastreams[0]; + strcpy( orientation_datastream->datastream_id, "orientation" ); + xi_datapoint_t* current_orientation = &orientation_datastream->datapoints[0]; + + // create the cosm library context + xi_context_t* xi_context + = xi_create_context( XI_HTTP, XI_API_KEY, feed.feed_id ); + + // check if everything works + if( xi_context == NULL ) { + return -1; + } + + while(1) { + time_t seconds = time(NULL); + char buffer[32]; + // get the current time + strftime(buffer, 32, "%I:%M %p\n", localtime(&seconds)); + xi_set_value_str( current_orientation, buffer ); + printf( "update...\n" ); + // send to xively server + xi_feed_update( xi_context, &feed ); + printf( "done...\n" ); + wait( 1.0 ); + } +}
diff -r 867d16e948eb -r 3c44af154da8 xi_user_config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xi_user_config.h Sat Nov 09 01:02:05 2013 +0000 @@ -0,0 +1,23 @@ +#ifndef __XI_USER_CONFIG_H__ +#define __XI_USER_CONFIG_H__ + +// The following settings should lower memory footprint. +// The library currently allows one to send batch datapoint +// and feed updates, but it's not needed in most use cases +#define XI_MAX_DATAPOINTS 1 +// The number of channels can be increased if needed +#define XI_MAX_DATASTREAMS 5 + +// Below are optimisations that reduce some minor functionality +#define XI_OPT_NO_ERROR_STRINGS + +// If you wish to enable assertions, set this to 1 +#define XI_DEBUG_ASSERT 0 +// If you wish to disable debug output, set this to 0 +#define XI_DEBUG_OUTPUT 0 + +// On the mbed app board we can use the LCD for debug output, +// but one may wish to modify this and write to file instead +#define XI_DEBUG_PRINTF printf + +#endif /* __XI_USER_CONFIG_H__ */