Xively jumpstart demo with static ip

Dependencies:   C12832_lcd EthernetInterface LM75B MMA7660 libxively mbed-rtos mbed

Committer:
dwijaybane
Date:
Mon Oct 12 06:57:44 2015 +0000
Revision:
0:7c69bca78a67
xively custom static ip version

Who changed what in which revision?

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