JST時間と固定のメッセージをツイートするよ

Dependencies:   EthernetNetIf NTPClient_NetServices TextLCD mbed

Committer:
meisei0517
Date:
Sat Jun 11 19:40:57 2011 +0000
Revision:
0:9235a8e0a631
Tweet4Udenokai-kai

Who changed what in which revision?

UserRevisionLine numberNew contents of line
meisei0517 0:9235a8e0a631 1 /*
meisei0517 0:9235a8e0a631 2 * UDENOKAI #5 SAMPLE PROGRAM: Tweeting with mbed!
meisei0517 0:9235a8e0a631 3 *
meisei0517 0:9235a8e0a631 4 * Using SuperTweet.Net API Proxy (setup required).
meisei0517 0:9235a8e0a631 5 * Based on cookbook/Twitter
meisei0517 0:9235a8e0a631 6 */
meisei0517 0:9235a8e0a631 7 #include "mbed.h"
meisei0517 0:9235a8e0a631 8 #include "EthernetNetIf.h"
meisei0517 0:9235a8e0a631 9 #include "HTTPClient.h"
meisei0517 0:9235a8e0a631 10 #include "TextLCD.h" // Orange Board
meisei0517 0:9235a8e0a631 11
meisei0517 0:9235a8e0a631 12 //tuika
meisei0517 0:9235a8e0a631 13 #include "NTPClient.h"
meisei0517 0:9235a8e0a631 14
meisei0517 0:9235a8e0a631 15
meisei0517 0:9235a8e0a631 16 Serial pc(USBTX, USBRX); // tx, rx
meisei0517 0:9235a8e0a631 17 TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7
meisei0517 0:9235a8e0a631 18 EthernetNetIf eth;
meisei0517 0:9235a8e0a631 19 NTPClient ntp;
meisei0517 0:9235a8e0a631 20
meisei0517 0:9235a8e0a631 21 int main() {
meisei0517 0:9235a8e0a631 22 char message[64], name[32], twID[32], twPW[32];
meisei0517 0:9235a8e0a631 23 sprintf(message, "hogehogefugafuga");
meisei0517 0:9235a8e0a631 24 sprintf(name, "@hoge"); // ex) @kagamikan
meisei0517 0:9235a8e0a631 25 sprintf(twID, "foo"); // ex) udenokai
meisei0517 0:9235a8e0a631 26 sprintf(twPW, "boo"); // ex) hoge
meisei0517 0:9235a8e0a631 27 time_t ctTime;
meisei0517 0:9235a8e0a631 28
meisei0517 0:9235a8e0a631 29 pc.printf("\r\nSetting up...\r\n");
meisei0517 0:9235a8e0a631 30 lcd.printf("Setting up...");
meisei0517 0:9235a8e0a631 31 EthernetErr ethErr = eth.setup();
meisei0517 0:9235a8e0a631 32 if(ethErr) {
meisei0517 0:9235a8e0a631 33 printf("Error %d in setup.\n", ethErr);
meisei0517 0:9235a8e0a631 34 lcd.printf("\nError %d in setup.", ethErr);
meisei0517 0:9235a8e0a631 35 return -1;
meisei0517 0:9235a8e0a631 36 }
meisei0517 0:9235a8e0a631 37 IpAddr ip = eth.getIp();
meisei0517 0:9235a8e0a631 38 pc.printf("\r\nSetup OK\r\n");
meisei0517 0:9235a8e0a631 39 lcd.cls();
meisei0517 0:9235a8e0a631 40 lcd.printf("IP Address:\n%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
meisei0517 0:9235a8e0a631 41
meisei0517 0:9235a8e0a631 42 time_t sec = time(NULL);
meisei0517 0:9235a8e0a631 43 char tweet[128], ts[32];
meisei0517 0:9235a8e0a631 44
meisei0517 0:9235a8e0a631 45
meisei0517 0:9235a8e0a631 46
meisei0517 0:9235a8e0a631 47 //kokowotuika
meisei0517 0:9235a8e0a631 48 Host server(IpAddr(), 123, "ntp.nict.jp");
meisei0517 0:9235a8e0a631 49 ntp.setTime(server);
meisei0517 0:9235a8e0a631 50 ctTime = time(NULL);
meisei0517 0:9235a8e0a631 51 ctTime += 32400; //set jst time
meisei0517 0:9235a8e0a631 52
meisei0517 0:9235a8e0a631 53 //localtime no hikisuu wo henkou
meisei0517 0:9235a8e0a631 54 strftime(ts, 32, "%I:%M %p\n", localtime(&ctTime));
meisei0517 0:9235a8e0a631 55
meisei0517 0:9235a8e0a631 56
meisei0517 0:9235a8e0a631 57
meisei0517 0:9235a8e0a631 58 sprintf(tweet, "%s (%s's mbed at %s JST) #udenokai", message, name, ts);
meisei0517 0:9235a8e0a631 59 pc.printf( "%s (%s's mbed at %s JST) #udenokai", message, name , ts); //console nimo tui-to naiyou wo dasu
meisei0517 0:9235a8e0a631 60
meisei0517 0:9235a8e0a631 61 HTTPClient twitter;
meisei0517 0:9235a8e0a631 62 HTTPMap msg;
meisei0517 0:9235a8e0a631 63 msg["status"] = tweet;
meisei0517 0:9235a8e0a631 64 twitter.basicAuth(twID, twPW);
meisei0517 0:9235a8e0a631 65 HTTPResult r = twitter.post("http://api.supertweet.net/1/statuses/update.xml", msg, NULL);
meisei0517 0:9235a8e0a631 66 if(r == HTTP_OK) {
meisei0517 0:9235a8e0a631 67 pc.printf("Tweet success!\n");
meisei0517 0:9235a8e0a631 68 lcd.cls();
meisei0517 0:9235a8e0a631 69 lcd.printf("\nTweet success!");
meisei0517 0:9235a8e0a631 70 } else {
meisei0517 0:9235a8e0a631 71 pc.printf("Tweet failed (Code:%d)\n", r);
meisei0517 0:9235a8e0a631 72 lcd.cls();
meisei0517 0:9235a8e0a631 73 lcd.printf("\nTweet failed (%d)", r);
meisei0517 0:9235a8e0a631 74 }
meisei0517 0:9235a8e0a631 75
meisei0517 0:9235a8e0a631 76
meisei0517 0:9235a8e0a631 77 return 0;
meisei0517 0:9235a8e0a631 78 }