The car is controlled by the PS2 controller and the temperature is sent on xively via the wifly.
Dependencies: C12832_lcd WiflyInterface libxively mbed-rtos mbed LM75B MMA7660
Fork of IOT-Project-Wifly-Xively by
main.cpp@7:c7023f76310e, 2014-06-09 (annotated)
- Committer:
- bhakti08
- Date:
- Mon Jun 09 22:53:04 2014 +0000
- Revision:
- 7:c7023f76310e
- Parent:
- 6:9abfe16d39e0
Final
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bhakti08 | 4:d1e0e52f7f6b | 1 | //This Program is used to turn the LED ON/OFF via telent (Wifly connected) |
samux | 1:31e50fea8be8 | 2 | #include "mbed.h" |
samux | 1:31e50fea8be8 | 3 | #include "WiflyInterface.h" |
bhakti08 | 4:d1e0e52f7f6b | 4 | #include <string.h> |
bhakti08 | 5:efa4a9eafe7d | 5 | #include "LM75B.h" |
bhakti08 | 5:efa4a9eafe7d | 6 | #include "MMA7660.h" |
bhakti08 | 6:9abfe16d39e0 | 7 | #include "rtos.h" |
bhakti08 | 5:efa4a9eafe7d | 8 | |
bhakti08 | 7:c7023f76310e | 9 | #define XI_FEED_ID 1344466483 // set Xively Feed ID (numerical, no quoutes) |
bhakti08 | 7:c7023f76310e | 10 | #define XI_API_KEY "mgjx3VwlsvsMBhekqcASRLnzMPHi9Aw2gZCZCzyH0vQkefn3" // set Xively API key (double-quoted string) |
bhakti08 | 5:efa4a9eafe7d | 11 | |
bhakti08 | 5:efa4a9eafe7d | 12 | #include "xively.h" |
bhakti08 | 5:efa4a9eafe7d | 13 | #include "xi_err.h" |
bhakti08 | 5:efa4a9eafe7d | 14 | |
bhakti08 | 5:efa4a9eafe7d | 15 | #include "C12832_lcd.h" |
bhakti08 | 5:efa4a9eafe7d | 16 | |
bhakti08 | 5:efa4a9eafe7d | 17 | |
bhakti08 | 6:9abfe16d39e0 | 18 | LM75B temp(p28,p27); |
bhakti08 | 5:efa4a9eafe7d | 19 | MMA7660 axl(p28,p27); |
bhakti08 | 5:efa4a9eafe7d | 20 | Serial pc(USBTX,USBRX); |
bhakti08 | 5:efa4a9eafe7d | 21 | C12832_LCD lcd; |
bhakti08 | 4:d1e0e52f7f6b | 22 | |
samux | 1:31e50fea8be8 | 23 | /* wifly interface: |
samux | 1:31e50fea8be8 | 24 | * - p9 and p10 are for the serial communication |
samux | 1:31e50fea8be8 | 25 | * - p19 is for the reset pin |
samux | 1:31e50fea8be8 | 26 | * - p26 is for the connection status |
samux | 1:31e50fea8be8 | 27 | * - "mbed" is the ssid of the network |
samux | 1:31e50fea8be8 | 28 | * - "password" is the password |
samux | 1:31e50fea8be8 | 29 | * - WPA is the security |
samux | 1:31e50fea8be8 | 30 | */ |
avnisha | 3:034dbd0b2002 | 31 | //apps board |
bhakti08 | 4:d1e0e52f7f6b | 32 | WiflyInterface wifly(p9, p10, p30, p29, "MY_WIFI", "", NONE); |
avnisha | 3:034dbd0b2002 | 33 | |
bhakti08 | 6:9abfe16d39e0 | 34 | |
samux | 1:31e50fea8be8 | 35 | |
samux | 1:31e50fea8be8 | 36 | int main() { |
avnisha | 3:034dbd0b2002 | 37 | |
samux | 1:31e50fea8be8 | 38 | wifly.init(); //Use DHCP |
bhakti08 | 5:efa4a9eafe7d | 39 | pc.printf("1\r\n"); |
samux | 1:31e50fea8be8 | 40 | while (!wifly.connect()); |
bhakti08 | 5:efa4a9eafe7d | 41 | pc.printf("IP Address is %s\n\r", wifly.getIPAddress()); |
avnisha | 3:034dbd0b2002 | 42 | |
bhakti08 | 6:9abfe16d39e0 | 43 | |
bhakti08 | 5:efa4a9eafe7d | 44 | xi_feed_t feed; |
bhakti08 | 5:efa4a9eafe7d | 45 | memset( &feed, NULL, sizeof( xi_feed_t ) ); |
bhakti08 | 5:efa4a9eafe7d | 46 | |
bhakti08 | 5:efa4a9eafe7d | 47 | feed.feed_id = XI_FEED_ID; |
bhakti08 | 7:c7023f76310e | 48 | feed.datastream_count = 4; |
bhakti08 | 5:efa4a9eafe7d | 49 | |
bhakti08 | 5:efa4a9eafe7d | 50 | feed.datastreams[0].datapoint_count = 1; |
bhakti08 | 5:efa4a9eafe7d | 51 | xi_datastream_t* temperature_datastream = &feed.datastreams[0]; |
bhakti08 | 5:efa4a9eafe7d | 52 | strcpy( temperature_datastream->datastream_id, "Temperature" ); |
bhakti08 | 5:efa4a9eafe7d | 53 | xi_datapoint_t* current_temperature = &temperature_datastream->datapoints[0]; |
bhakti08 | 5:efa4a9eafe7d | 54 | |
bhakti08 | 7:c7023f76310e | 55 | feed.datastreams[1].datapoint_count = 1; |
bhakti08 | 7:c7023f76310e | 56 | xi_datastream_t* x_axis_datastream = &feed.datastreams[1]; |
bhakti08 | 7:c7023f76310e | 57 | strcpy( x_axis_datastream->datastream_id, "X_axis" ); |
bhakti08 | 7:c7023f76310e | 58 | xi_datapoint_t* accel_x = &x_axis_datastream->datapoints[0]; |
bhakti08 | 7:c7023f76310e | 59 | |
bhakti08 | 7:c7023f76310e | 60 | feed.datastreams[2].datapoint_count = 1; |
bhakti08 | 7:c7023f76310e | 61 | xi_datastream_t* y_axis_datastream = &feed.datastreams[2]; |
bhakti08 | 7:c7023f76310e | 62 | strcpy( y_axis_datastream->datastream_id, "Y_axis" ); |
bhakti08 | 7:c7023f76310e | 63 | xi_datapoint_t* accel_y = &y_axis_datastream->datapoints[0]; |
bhakti08 | 7:c7023f76310e | 64 | |
bhakti08 | 7:c7023f76310e | 65 | feed.datastreams[3].datapoint_count = 1; |
bhakti08 | 7:c7023f76310e | 66 | xi_datastream_t* z_axis_datastream = &feed.datastreams[3]; |
bhakti08 | 7:c7023f76310e | 67 | strcpy( z_axis_datastream->datastream_id, "Z_axis" ); |
bhakti08 | 7:c7023f76310e | 68 | xi_datapoint_t* accel_z = &z_axis_datastream->datapoints[0]; |
bhakti08 | 7:c7023f76310e | 69 | |
bhakti08 | 5:efa4a9eafe7d | 70 | xi_context_t* xi_context |
bhakti08 | 5:efa4a9eafe7d | 71 | = xi_create_context( XI_HTTP, XI_API_KEY, feed.feed_id ); |
bhakti08 | 5:efa4a9eafe7d | 72 | if( xi_context == NULL ) |
bhakti08 | 5:efa4a9eafe7d | 73 | { |
bhakti08 | 5:efa4a9eafe7d | 74 | pc.printf("Error in Xi_Context\r\n"); |
bhakti08 | 5:efa4a9eafe7d | 75 | exit (0); |
bhakti08 | 5:efa4a9eafe7d | 76 | } |
bhakti08 | 5:efa4a9eafe7d | 77 | |
bhakti08 | 6:9abfe16d39e0 | 78 | while (true) { |
bhakti08 | 6:9abfe16d39e0 | 79 | pc.printf("In xively thread\r\n"); |
bhakti08 | 5:efa4a9eafe7d | 80 | xi_set_value_f32( current_temperature, temp.read() ); |
bhakti08 | 7:c7023f76310e | 81 | xi_set_value_f32( accel_x ,axl.x() ); |
bhakti08 | 7:c7023f76310e | 82 | xi_set_value_f32( accel_y ,axl.y() ); |
bhakti08 | 7:c7023f76310e | 83 | xi_set_value_f32( accel_z ,axl.z() ); |
bhakti08 | 6:9abfe16d39e0 | 84 | pc.printf("Value set\r\n"); |
bhakti08 | 5:efa4a9eafe7d | 85 | xi_feed_update( xi_context, &feed ); |
bhakti08 | 6:9abfe16d39e0 | 86 | pc.printf("Update\r\n"); |
bhakti08 | 6:9abfe16d39e0 | 87 | wait(10); |
avnisha | 3:034dbd0b2002 | 88 | } |
bhakti08 | 4:d1e0e52f7f6b | 89 | } |