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

Dependencies:   EthernetNetIf NTPClient_NetServices TextLCD mbed

main.cpp

Committer:
meisei0517
Date:
2011-06-11
Revision:
0:9235a8e0a631

File content as of revision 0:9235a8e0a631:

/*
 * UDENOKAI #5 SAMPLE PROGRAM: Tweeting with mbed!
 * 
 * Using SuperTweet.Net API Proxy (setup required).
 * Based on cookbook/Twitter
 */
#include "mbed.h"
#include "EthernetNetIf.h"
#include "HTTPClient.h"
#include "TextLCD.h"    // Orange Board

//tuika
#include "NTPClient.h"   


Serial pc(USBTX, USBRX); // tx, rx
TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7
EthernetNetIf eth;
NTPClient ntp;

int main() {
  char message[64], name[32], twID[32], twPW[32];
  sprintf(message, "hogehogefugafuga"); 
  sprintf(name, "@hoge");         // ex) @kagamikan
  sprintf(twID, "foo");           // ex) udenokai
  sprintf(twPW, "boo");     // ex) hoge
  time_t ctTime;

  pc.printf("\r\nSetting up...\r\n");
  lcd.printf("Setting up...");
  EthernetErr ethErr = eth.setup();
  if(ethErr) {
    printf("Error %d in setup.\n", ethErr);
    lcd.printf("\nError %d in setup.", ethErr);
    return -1;
  }
  IpAddr ip = eth.getIp();
  pc.printf("\r\nSetup OK\r\n");
  lcd.cls();
  lcd.printf("IP Address:\n%d.%d.%d.%d", ip[0], ip[1], ip[2], ip[3]);
  
  time_t sec = time(NULL);
  char tweet[128], ts[32];
    
  
  
  //kokowotuika
  Host server(IpAddr(), 123, "ntp.nict.jp");
  ntp.setTime(server);
  ctTime = time(NULL);
  ctTime += 32400; //set jst time
  
  //localtime no hikisuu wo henkou
  strftime(ts, 32, "%I:%M %p\n", localtime(&ctTime)); 
  
  
    
  sprintf(tweet, "%s (%s's mbed at %s JST) #udenokai", message, name, ts);
  pc.printf( "%s  (%s's mbed at %s JST) #udenokai", message, name , ts);  //console nimo tui-to naiyou wo dasu

  HTTPClient twitter;  
  HTTPMap msg;
  msg["status"] = tweet;
  twitter.basicAuth(twID, twPW);
  HTTPResult r = twitter.post("http://api.supertweet.net/1/statuses/update.xml", msg, NULL); 
  if(r == HTTP_OK) {
    pc.printf("Tweet success!\n");
    lcd.cls();
    lcd.printf("\nTweet success!");
  } else {
    pc.printf("Tweet failed (Code:%d)\n", r);
    lcd.cls();
    lcd.printf("\nTweet failed (%d)", r);
  }
  
 
  return 0;
}