Tweeting with mbed! (using SuperTweet)

Dependencies:   EthernetNetIf NTPClient_NetServices TextLCD mbed

Committer:
kagamikan
Date:
Sat Jun 11 16:19:38 2011 +0000
Revision:
0:2e771f40cf84
Child:
1:5f287a9e95c8

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kagamikan 0:2e771f40cf84 1 /*
kagamikan 0:2e771f40cf84 2 * UDENOKAI #5 SAMPLE PROGRAM: Tweeting with mbed!
kagamikan 0:2e771f40cf84 3 *
kagamikan 0:2e771f40cf84 4 * Using SuperTweet.Net API Proxy (setup required).
kagamikan 0:2e771f40cf84 5 * Based on cookbook/Twitter
kagamikan 0:2e771f40cf84 6 */
kagamikan 0:2e771f40cf84 7 #include "mbed.h"
kagamikan 0:2e771f40cf84 8 #include "EthernetNetIf.h"
kagamikan 0:2e771f40cf84 9 #include "HTTPClient.h"
kagamikan 0:2e771f40cf84 10 #include "TextLCD.h" // Orange Board
kagamikan 0:2e771f40cf84 11
kagamikan 0:2e771f40cf84 12 Serial pc(USBTX, USBRX); // tx, rx
kagamikan 0:2e771f40cf84 13 TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7
kagamikan 0:2e771f40cf84 14 EthernetNetIf eth;
kagamikan 0:2e771f40cf84 15
kagamikan 0:2e771f40cf84 16 int main() {
kagamikan 0:2e771f40cf84 17 char message[64], name[32], twID[32], twPW[32];
kagamikan 0:2e771f40cf84 18 sprintf(message, "hogehogefugafuga");
kagamikan 0:2e771f40cf84 19 sprintf(name, "INPUT_YOUR_NAME"); // ex) @kagamikan
kagamikan 0:2e771f40cf84 20 sprintf(twID, "INPUT_YOUR_ID"); // ex) udenokai
kagamikan 0:2e771f40cf84 21 sprintf(twPW, "INPUT_YOUR_PASSWORD"); // ex) hoge
kagamikan 0:2e771f40cf84 22
kagamikan 0:2e771f40cf84 23 pc.printf("\r\nSetting up...\r\n");
kagamikan 0:2e771f40cf84 24 lcd.printf("Setting up...");
kagamikan 0:2e771f40cf84 25 EthernetErr ethErr = eth.setup();
kagamikan 0:2e771f40cf84 26 if(ethErr) {
kagamikan 0:2e771f40cf84 27 printf("Error %d in setup.\n", ethErr);
kagamikan 0:2e771f40cf84 28 lcd.printf("\nError %d in setup.", ethErr);
kagamikan 0:2e771f40cf84 29 return -1;
kagamikan 0:2e771f40cf84 30 }
kagamikan 0:2e771f40cf84 31 IpAddr ip = eth.getIp();
kagamikan 0:2e771f40cf84 32 pc.printf("\r\nSetup OK\r\n");
kagamikan 0:2e771f40cf84 33 lcd.cls();
kagamikan 0:2e771f40cf84 34 lcd.printf("IP Address:\n%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
kagamikan 0:2e771f40cf84 35
kagamikan 0:2e771f40cf84 36 time_t sec = time(NULL);
kagamikan 0:2e771f40cf84 37 char tweet[128], ts[32];
kagamikan 0:2e771f40cf84 38 strftime(ts, 32, "%I:%M %p\n", localtime(&sec));
kagamikan 0:2e771f40cf84 39 sprintf(tweet, "%s (%s's mbed at %s UTC) #udenokai", message, name, ts);
kagamikan 0:2e771f40cf84 40
kagamikan 0:2e771f40cf84 41 HTTPClient twitter;
kagamikan 0:2e771f40cf84 42 HTTPMap msg;
kagamikan 0:2e771f40cf84 43 msg["status"] = tweet;
kagamikan 0:2e771f40cf84 44 twitter.basicAuth(twID, twPW);
kagamikan 0:2e771f40cf84 45 HTTPResult r = twitter.post("http://api.supertweet.net/1/statuses/update.xml", msg, NULL);
kagamikan 0:2e771f40cf84 46 if(r == HTTP_OK) {
kagamikan 0:2e771f40cf84 47 pc.printf("Tweet success!\n");
kagamikan 0:2e771f40cf84 48 lcd.cls();
kagamikan 0:2e771f40cf84 49 lcd.printf("\nTweet success!");
kagamikan 0:2e771f40cf84 50 } else {
kagamikan 0:2e771f40cf84 51 pc.printf("Tweet failed (Code:%d)\n", r);
kagamikan 0:2e771f40cf84 52 lcd.cls();
kagamikan 0:2e771f40cf84 53 lcd.printf("\nTweet failed (%d)", r);
kagamikan 0:2e771f40cf84 54 }
kagamikan 0:2e771f40cf84 55 return 0;
kagamikan 0:2e771f40cf84 56 }