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:42:20 2013 +0000
Revision:
6:a5d8918748fa
Parent:
5:22fb0d9a5de2
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 } else {
4180skrw 4:2d5b7c5b995e 35 printf("Oh Dear! No lock :(\n\r");
4180skrw 5:22fb0d9a5de2 36 sprintf(buff,"Location Unknown");
4180skrw 4:2d5b7c5b995e 37 }
4180skrw 6:a5d8918748fa 38 }
4180skrw 6:a5d8918748fa 39
4180skrw 6:a5d8918748fa 40 msg["status"] = buff;
4180skrw 6:a5d8918748fa 41 twitter.basicAuth("username", "password"); //We use basic authentication, replace with you account's parameters
4180skrw 6:a5d8918748fa 42
4180skrw 6:a5d8918748fa 43 //No need to retieve data sent back by the server
4180skrw 6:a5d8918748fa 44 HTTPResult r = twitter.post("http://api.supertweet.net/1.1/statuses/update.json", msg, NULL);
4180skrw 6:a5d8918748fa 45 if( r == HTTP_OK )
4180skrw 6:a5d8918748fa 46 {
4180skrw 6:a5d8918748fa 47 printf("Tweet sent with success!\n");
4180skrw 6:a5d8918748fa 48 }
4180skrw 6:a5d8918748fa 49 else
4180skrw 6:a5d8918748fa 50 {
4180skrw 6:a5d8918748fa 51 printf("Problem during tweeting, return code %d\n", r);
4180skrw 4:2d5b7c5b995e 52 }
4180skrw 4:2d5b7c5b995e 53
4180skrw 5:22fb0d9a5de2 54 wait(60*5); //Repeat ever 5 minutes
4180skrw 4:2d5b7c5b995e 55 }
4180skrw 4:2d5b7c5b995e 56
4180skrw 4:2d5b7c5b995e 57 return 0;
4180skrw 4:2d5b7c5b995e 58
4180skrw 4:2d5b7c5b995e 59 }