Xively Jumpstart Demo with WiFly module

Dependencies:   C12832_lcd LM75B MMA7660 WiflyInterface libxively mbed-rtos mbed

Deprecated

This is an mbed 2 example. For an mbed-os WiFi example, see:

[Repository '/teams/mbed-os-examples/code/mbed-os-example-wifi/docs/tip/' not found]

Committer:
Ilya Dmitrichenko
Date:
Mon Oct 14 11:58:41 2013 +0100
Revision:
9:c5dc85d192e2
Parent:
8:81743e1228a7
Child:
10:86ffba646df1
Add user config header as it's now required

(see https://github.com/xively/libxively/issues/51)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xively 0:efdea27c3b81 1 #include "mbed.h"
xively 0:efdea27c3b81 2 #include "EthernetInterface.h"
xively 7:0eff5db44b8b 3
xively 7:0eff5db44b8b 4 #define XI_FEED_ID 128488 // set Xively Feed ID (numerical, no quoutes
xively 7:0eff5db44b8b 5 #define XI_API_KEY "T4KXAH_dasgw1PWBPc3fdsfsdgsdy-dUc4ND0g" // set Xively API key (double-quoted string)
xively 7:0eff5db44b8b 6
xively 0:efdea27c3b81 7 #include "xively.h"
xively 0:efdea27c3b81 8 #include "xi_err.h"
xively 0:efdea27c3b81 9
xively 0:efdea27c3b81 10 MMA7660 axl(p28, p27);
xively 3:7ad3f6543b6e 11 LM75B tmp(p28, p27);
xively 0:efdea27c3b81 12
xively 0:efdea27c3b81 13 int main() {
xively 0:efdea27c3b81 14
xively 0:efdea27c3b81 15 EthernetInterface eth;
xively 0:efdea27c3b81 16
xively 0:efdea27c3b81 17 int s = eth.init(); //Use DHCP
xively 0:efdea27c3b81 18
xively 0:efdea27c3b81 19 if( s != NULL )
xively 0:efdea27c3b81 20 {
xively 7:0eff5db44b8b 21 lcd_printf( "Could not initialise. Will halt!\n" );
xively 0:efdea27c3b81 22 exit( 0 );
xively 0:efdea27c3b81 23 }
xively 0:efdea27c3b81 24
xively 0:efdea27c3b81 25 s = eth.connect();
xively 0:efdea27c3b81 26
xively 0:efdea27c3b81 27 if( s != NULL )
xively 0:efdea27c3b81 28 {
xively 7:0eff5db44b8b 29 lcd_printf( "Could not connect. Will halt!\n" );
xively 0:efdea27c3b81 30 exit( 0 );
xively 0:efdea27c3b81 31 }
xively 0:efdea27c3b81 32 else
xively 0:efdea27c3b81 33 {
xively 7:0eff5db44b8b 34 lcd_printf( "IP: %s\n", eth.getIPAddress() );
xively 0:efdea27c3b81 35 }
xively 0:efdea27c3b81 36
xively 0:efdea27c3b81 37 xi_feed_t feed;
xively 0:efdea27c3b81 38 memset( &feed, NULL, sizeof( xi_feed_t ) );
xively 0:efdea27c3b81 39
xively 0:efdea27c3b81 40 feed.feed_id = XI_FEED_ID;
xively 3:7ad3f6543b6e 41 feed.datastream_count = 3;
xively 0:efdea27c3b81 42
xively 0:efdea27c3b81 43 feed.datastreams[0].datapoint_count = 1;
xively 0:efdea27c3b81 44 xi_datastream_t* orientation_datastream = &feed.datastreams[0];
xively 0:efdea27c3b81 45 strcpy( orientation_datastream->datastream_id, "orientation" );
xively 0:efdea27c3b81 46 xi_datapoint_t* current_orientation = &orientation_datastream->datapoints[0];
xively 0:efdea27c3b81 47
xively 0:efdea27c3b81 48 feed.datastreams[1].datapoint_count = 1;
xively 0:efdea27c3b81 49 xi_datastream_t* side_rotation_datastream = &feed.datastreams[1];
xively 0:efdea27c3b81 50 strcpy( side_rotation_datastream->datastream_id, "side_rotation" );
xively 0:efdea27c3b81 51 xi_datapoint_t* current_side_rotation = &side_rotation_datastream->datapoints[0];
xively 0:efdea27c3b81 52
xively 3:7ad3f6543b6e 53 feed.datastreams[2].datapoint_count = 1;
xively 3:7ad3f6543b6e 54 xi_datastream_t* temperature_datastream = &feed.datastreams[2];
xively 3:7ad3f6543b6e 55 strcpy( temperature_datastream->datastream_id, "temperature" );
xively 3:7ad3f6543b6e 56 xi_datapoint_t* current_temperature = &temperature_datastream->datapoints[0];
xively 3:7ad3f6543b6e 57
xively 0:efdea27c3b81 58 // create the cosm library context
xively 0:efdea27c3b81 59 xi_context_t* xi_context
xively 0:efdea27c3b81 60 = xi_create_context( XI_HTTP, XI_API_KEY, feed.feed_id );
xively 0:efdea27c3b81 61
xively 0:efdea27c3b81 62 // check if everything works
xively 0:efdea27c3b81 63 if( xi_context == NULL )
xively 0:efdea27c3b81 64 {
xively 0:efdea27c3b81 65 return -1;
xively 0:efdea27c3b81 66 }
xively 0:efdea27c3b81 67
xively 7:0eff5db44b8b 68 lcd_printf("feed:%d datastreams:[%s,%s]\n", feed.feed_id,
xively 0:efdea27c3b81 69 orientation_datastream->datastream_id,
xively 0:efdea27c3b81 70 side_rotation_datastream->datastream_id);
xively 0:efdea27c3b81 71
xively 0:efdea27c3b81 72 while(1) {
xively 0:efdea27c3b81 73
xively 0:efdea27c3b81 74 switch( axl.getSide() ) {
xively 0:efdea27c3b81 75 case MMA7660::Front:
xively 0:efdea27c3b81 76 xi_set_value_str( current_side_rotation, "front" );
xively 0:efdea27c3b81 77 break;
xively 0:efdea27c3b81 78 case MMA7660::Back:
xively 0:efdea27c3b81 79 xi_set_value_str( current_side_rotation, "back" );
xively 0:efdea27c3b81 80 break;
xively 0:efdea27c3b81 81 default:
xively 0:efdea27c3b81 82 xi_set_value_str( current_side_rotation, "unknown" );
xively 0:efdea27c3b81 83 break;
xively 0:efdea27c3b81 84 }
xively 0:efdea27c3b81 85
xively 0:efdea27c3b81 86 switch( axl.getOrientation() ) {
xively 0:efdea27c3b81 87 case MMA7660::Down:
xively 7:0eff5db44b8b 88 lcd_printf("down %s\n",
xively 0:efdea27c3b81 89 (axl.getSide() == MMA7660::Front ? "front" : "back"));
xively 0:efdea27c3b81 90 xi_set_value_str( current_orientation, "down" );
xively 0:efdea27c3b81 91 break;
xively 0:efdea27c3b81 92 case MMA7660::Up:
xively 7:0eff5db44b8b 93 lcd_printf("up %s\n",
xively 0:efdea27c3b81 94 (axl.getSide() == MMA7660::Front ? "front" : "back"));
xively 0:efdea27c3b81 95 xi_set_value_str( current_orientation, "up" );
xively 0:efdea27c3b81 96 break;
xively 0:efdea27c3b81 97 case MMA7660::Right:
xively 7:0eff5db44b8b 98 lcd_printf("right %s\n",
xively 0:efdea27c3b81 99 (axl.getSide() == MMA7660::Front ? "front" : "back"));
xively 0:efdea27c3b81 100 xi_set_value_str( current_orientation, "right" );
xively 0:efdea27c3b81 101 break;
xively 0:efdea27c3b81 102 case MMA7660::Left:
xively 7:0eff5db44b8b 103 lcd_printf("left %s\n",
xively 0:efdea27c3b81 104 (axl.getSide() == MMA7660::Front ? "front" : "back"));
xively 0:efdea27c3b81 105 xi_set_value_str( current_orientation, "left" );
xively 0:efdea27c3b81 106 break;
xively 0:efdea27c3b81 107 default:
xively 0:efdea27c3b81 108 xi_set_value_str( current_orientation, "unknown" );
xively 0:efdea27c3b81 109 break;
xively 0:efdea27c3b81 110 }
xively 3:7ad3f6543b6e 111
xively 3:7ad3f6543b6e 112 xi_set_value_f32( current_temperature, tmp.read() );
xively 4:e7ca62a11595 113
xively 7:0eff5db44b8b 114 lcd_printf( "update...\n" );
xively 0:efdea27c3b81 115 xi_feed_update(xi_context, &feed);
xively 7:0eff5db44b8b 116 lcd_printf( "done...\n" );
xively 3:7ad3f6543b6e 117
xively 3:7ad3f6543b6e 118 wait( 15.0 );
xively 0:efdea27c3b81 119 }
Ilya Dmitrichenko 6:9e4f4a8c1829 120 }