GPS Tweeter program that tweets the device's GPS location every 5 minutes.

Dependencies:   EthernetNetIf HTTPClient mbed

Fork of TwitterExample by Donatien Garnier

Committer:
4180skrw
Date:
Wed Oct 16 20:40:55 2013 +0000
Revision:
5:22fb0d9a5de2
Parent:
4:2d5b7c5b995e
Child:
6:a5d8918748fa
fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
4180skrw 4:2d5b7c5b995e 1 #include "mbed.h"
4180skrw 4:2d5b7c5b995e 2 #include "EthernetNetIf.h"
4180skrw 4:2d5b7c5b995e 3 #include "HTTPClient.h"
4180skrw 4:2d5b7c5b995e 4 #include "GPS.h"
4180skrw 4:2d5b7c5b995e 5
4180skrw 4:2d5b7c5b995e 6 EthernetNetIf eth;
4180skrw 4:2d5b7c5b995e 7 GPS gps(p13, p14);
4180skrw 4:2d5b7c5b995e 8
4180skrw 4:2d5b7c5b995e 9 int main() {
4180skrw 5:22fb0d9a5de2 10 // Setup the time structure
4180skrw 4:2d5b7c5b995e 11 char buff[141];
4180skrw 4:2d5b7c5b995e 12
4180skrw 4:2d5b7c5b995e 13 printf("Initialization in Process\n");
4180skrw 4:2d5b7c5b995e 14
4180skrw 5:22fb0d9a5de2 15 EthernetErr ethErr = eth.setup(60000);
4180skrw 4:2d5b7c5b995e 16 if(ethErr)
4180skrw 4:2d5b7c5b995e 17 {
4180skrw 4:2d5b7c5b995e 18 printf("Error %d in setup.\n", ethErr);
4180skrw 4:2d5b7c5b995e 19 return -1;
4180skrw 4:2d5b7c5b995e 20 }
4180skrw 4:2d5b7c5b995e 21 printf("\r\nSetup OK\r\n");
4180skrw 4:2d5b7c5b995e 22
4180skrw 4:2d5b7c5b995e 23 // Setup objects for sending the tweet.
4180skrw 4:2d5b7c5b995e 24 HTTPClient twitter;
4180skrw 4:2d5b7c5b995e 25 HTTPMap msg;
4180skrw 4:2d5b7c5b995e 26
4180skrw 4:2d5b7c5b995e 27 while(1) {
4180skrw 4:2d5b7c5b995e 28
4180skrw 4:2d5b7c5b995e 29 printf("\Attempting to Read in From the GPS Device\n\r");
4180skrw 4:2d5b7c5b995e 30 gps.sample();
4180skrw 4:2d5b7c5b995e 31 if(gps.sample()) {
4180skrw 4:2d5b7c5b995e 32 printf("I'm at %f, %f\n\r", gps.longitude, gps.latitude);
4180skrw 4:2d5b7c5b995e 33 sprintf(buff,"I'm at %f, %f", gps.longitude, gps.latitude);
4180skrw 4:2d5b7c5b995e 34 msg["status"] = buff;
4180skrw 5:22fb0d9a5de2 35 twitter.basicAuth("username", "password"); //We use basic authentication, replace with you account's parameters
4180skrw 4:2d5b7c5b995e 36
4180skrw 4:2d5b7c5b995e 37 //No need to retieve data sent back by the server
4180skrw 4:2d5b7c5b995e 38 HTTPResult r = twitter.post("http://api.supertweet.net/1.1/statuses/update.json", msg, NULL);
4180skrw 4:2d5b7c5b995e 39 if( r == HTTP_OK )
4180skrw 4:2d5b7c5b995e 40 {
4180skrw 4:2d5b7c5b995e 41 printf("Tweet sent with success!\n");
4180skrw 4:2d5b7c5b995e 42 }
4180skrw 4:2d5b7c5b995e 43 else
4180skrw 4:2d5b7c5b995e 44 {
4180skrw 4:2d5b7c5b995e 45 printf("Problem during tweeting, return code %d\n", r);
4180skrw 4:2d5b7c5b995e 46 }
4180skrw 4:2d5b7c5b995e 47
4180skrw 4:2d5b7c5b995e 48 } else {
4180skrw 4:2d5b7c5b995e 49 printf("Oh Dear! No lock :(\n\r");
4180skrw 5:22fb0d9a5de2 50 sprintf(buff,"Location Unknown");
4180skrw 4:2d5b7c5b995e 51 msg["status"] = buff;
4180skrw 5:22fb0d9a5de2 52 twitter.basicAuth("username", "password"); //We use basic authentication, replace with you account's parameters
4180skrw 4:2d5b7c5b995e 53
4180skrw 4:2d5b7c5b995e 54 //No need to retieve data sent back by the server
4180skrw 4:2d5b7c5b995e 55 HTTPResult r = twitter.post("http://api.supertweet.net/1.1/statuses/update.json", msg, NULL);
4180skrw 4:2d5b7c5b995e 56 if( r == HTTP_OK )
4180skrw 4:2d5b7c5b995e 57 {
4180skrw 4:2d5b7c5b995e 58 printf("Tweet sent with success!\n");
4180skrw 4:2d5b7c5b995e 59 }
4180skrw 4:2d5b7c5b995e 60 else
4180skrw 4:2d5b7c5b995e 61 {
4180skrw 4:2d5b7c5b995e 62 printf("Problem during tweeting, return code %d\n", r);
4180skrw 4:2d5b7c5b995e 63 }
4180skrw 4:2d5b7c5b995e 64 }
4180skrw 4:2d5b7c5b995e 65
4180skrw 5:22fb0d9a5de2 66 wait(60*5); //Repeat ever 5 minutes
4180skrw 4:2d5b7c5b995e 67 }
4180skrw 4:2d5b7c5b995e 68
4180skrw 4:2d5b7c5b995e 69 return 0;
4180skrw 4:2d5b7c5b995e 70
4180skrw 4:2d5b7c5b995e 71 }