![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
JST時間と固定のメッセージをツイートするよ
Dependencies: EthernetNetIf NTPClient_NetServices TextLCD mbed
main.cpp@0:9235a8e0a631, 2011-06-11 (annotated)
- Committer:
- meisei0517
- Date:
- Sat Jun 11 19:40:57 2011 +0000
- Revision:
- 0:9235a8e0a631
Tweet4Udenokai-kai
Who changed what in which revision?
User | Revision | Line number | New 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 | } |