GPS Tweeter program that tweets the device's GPS location every 5 minutes.
Dependencies: EthernetNetIf HTTPClient mbed
Fork of TwitterExample by
main.cpp@6:a5d8918748fa, 2013-10-16 (annotated)
- Committer:
- 4180skrw
- Date:
- Wed Oct 16 20:42:20 2013 +0000
- Revision:
- 6:a5d8918748fa
- Parent:
- 5:22fb0d9a5de2
fixed
Who changed what in which revision?
User | Revision | Line number | New 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 | } |