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:32:46 2013 +0000
Revision:
4:2d5b7c5b995e
Child:
5:22fb0d9a5de2
GPS Tweeter

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 4:2d5b7c5b995e 10 // Setup the time structure
4180skrw 4:2d5b7c5b995e 11
4180skrw 4:2d5b7c5b995e 12 char buff[141];
4180skrw 4:2d5b7c5b995e 13
4180skrw 4:2d5b7c5b995e 14 printf("Initialization in Process\n");
4180skrw 4:2d5b7c5b995e 15
4180skrw 4:2d5b7c5b995e 16 EthernetErr ethErr = eth.setup(180000);
4180skrw 4:2d5b7c5b995e 17 if(ethErr)
4180skrw 4:2d5b7c5b995e 18 {
4180skrw 4:2d5b7c5b995e 19 printf("Error %d in setup.\n", ethErr);
4180skrw 4:2d5b7c5b995e 20 return -1;
4180skrw 4:2d5b7c5b995e 21 }
4180skrw 4:2d5b7c5b995e 22 printf("\r\nSetup OK\r\n");
4180skrw 4:2d5b7c5b995e 23 //wait(45);
4180skrw 4:2d5b7c5b995e 24
4180skrw 4:2d5b7c5b995e 25 // Setup objects for sending the tweet.
4180skrw 4:2d5b7c5b995e 26 HTTPClient twitter;
4180skrw 4:2d5b7c5b995e 27 HTTPMap msg;
4180skrw 4:2d5b7c5b995e 28
4180skrw 4:2d5b7c5b995e 29 while(1) {
4180skrw 4:2d5b7c5b995e 30
4180skrw 4:2d5b7c5b995e 31 printf("\Attempting to Read in From the GPS Device\n\r");
4180skrw 4:2d5b7c5b995e 32 gps.sample();
4180skrw 4:2d5b7c5b995e 33 if(gps.sample()) {
4180skrw 4:2d5b7c5b995e 34 printf("I'm at %f, %f\n\r", gps.longitude, gps.latitude);
4180skrw 4:2d5b7c5b995e 35 sprintf(buff,"I'm at %f, %f", gps.longitude, gps.latitude);
4180skrw 4:2d5b7c5b995e 36 //sprintf(buff,"Hey Guys, today I decided to take up a new hobby to cook. I will be making some amazing thing.");
4180skrw 4:2d5b7c5b995e 37 msg["status"] = buff;
4180skrw 4:2d5b7c5b995e 38 twitter.basicAuth("4180SKRW", "welcome1"); //We use basic authentication, replace with you account's parameters
4180skrw 4:2d5b7c5b995e 39
4180skrw 4:2d5b7c5b995e 40 //No need to retieve data sent back by the server
4180skrw 4:2d5b7c5b995e 41 HTTPResult r = twitter.post("http://api.supertweet.net/1.1/statuses/update.json", msg, NULL);
4180skrw 4:2d5b7c5b995e 42 if( r == HTTP_OK )
4180skrw 4:2d5b7c5b995e 43 {
4180skrw 4:2d5b7c5b995e 44 printf("Tweet sent with success!\n");
4180skrw 4:2d5b7c5b995e 45 }
4180skrw 4:2d5b7c5b995e 46 else
4180skrw 4:2d5b7c5b995e 47 {
4180skrw 4:2d5b7c5b995e 48 printf("Problem during tweeting, return code %d\n", r);
4180skrw 4:2d5b7c5b995e 49 }
4180skrw 4:2d5b7c5b995e 50
4180skrw 4:2d5b7c5b995e 51 } else {
4180skrw 4:2d5b7c5b995e 52 printf("Oh Dear! No lock :(\n\r");
4180skrw 4:2d5b7c5b995e 53 sprintf(buff,"hello my name is richard");
4180skrw 4:2d5b7c5b995e 54 msg["status"] = buff;
4180skrw 4:2d5b7c5b995e 55 twitter.basicAuth("4180SKRW", "welcome1"); //We use basic authentication, replace with you account's parameters
4180skrw 4:2d5b7c5b995e 56
4180skrw 4:2d5b7c5b995e 57 //No need to retieve data sent back by the server
4180skrw 4:2d5b7c5b995e 58 HTTPResult r = twitter.post("http://api.supertweet.net/1.1/statuses/update.json", msg, NULL);
4180skrw 4:2d5b7c5b995e 59 if( r == HTTP_OK )
4180skrw 4:2d5b7c5b995e 60 {
4180skrw 4:2d5b7c5b995e 61 printf("Tweet sent with success!\n");
4180skrw 4:2d5b7c5b995e 62 }
4180skrw 4:2d5b7c5b995e 63 else
4180skrw 4:2d5b7c5b995e 64 {
4180skrw 4:2d5b7c5b995e 65 printf("Problem during tweeting, return code %d\n", r);
4180skrw 4:2d5b7c5b995e 66 }
4180skrw 4:2d5b7c5b995e 67 }
4180skrw 4:2d5b7c5b995e 68
4180skrw 4:2d5b7c5b995e 69 wait(60*5);
4180skrw 4:2d5b7c5b995e 70 }
4180skrw 4:2d5b7c5b995e 71
4180skrw 4:2d5b7c5b995e 72 return 0;
4180skrw 4:2d5b7c5b995e 73
4180skrw 4:2d5b7c5b995e 74 }