Fx0からツイート数を取得してLEDを点灯するサンプル

Dependencies:   HTTPClient_Tweet SNICInterface_Tweet mbed-rtos mbed

main.cpp

Committer:
komoritan
Date:
2015-02-10
Revision:
0:e4d8036affda

File content as of revision 0:e4d8036affda:

#include "mbed.h"
#include "SNIC_WifiInterface.h"
#include "HTTPClient.h"

#define WIFI_SSID           ""
#define WIFI_SECUTIRY_KEY   ""
//#define WIFI_SECURITY_TYPE  e_SEC_OPEN
//#define WIFI_SECURITY_TYPE  e_SEC_WEP
//#define WIFI_SECURITY_TYPE  e_SEC_WPA_TKIP
#define WIFI_SECURITY_TYPE  e_SEC_WPA2_AES
//#define WIFI_SECURITY_TYPE  e_SEC_WPA2_MIXED
//#define WIFI_SECURITY_TYPE  e_SEC_WPA_AES

#define MAX_SENSING_SEC 60
#define INTERVAL_SEC     3

#define MAX_SITE 7
char *twitter_url[MAX_SITE]= {
    "http://192.168.0.1:3000/tweet_count?url=http://au-fx.kddi.com/",
    "http://192.168.0.1:3000/tweet_count?url=http://www.au.kddi.com/",
    "http://192.168.0.1:3000/tweet_count?url=http://www.kddi.com/",
    "http://192.168.0.1:3000/tweet_count?url=http://www.kddilabs.jp/",
    "http://192.168.0.1:3000/tweet_count?url=http://www.mozilla.org/",
    "http://192.168.0.1:3000/tweet_count?url=http://www.apple.com/",
    "http://192.168.0.1:3000/tweet_count?url=http://www.google.com/"
};

#define THRESHOLD1 100
#define THRESHOLD2 1000
#define THRESHOLD3 10000


DigitalOut led[]={LED1,LED2,LED3,LED4};

#if defined(TARGET_LPC1768)
C_SNIC_WifiInterface wifi( p13, p14, p12, p11, p20 );
Serial pc(USBTX, USBRX);    // This is required when defined "_DEBUG"
#else
#error no defined pin.
#endif


int connect()
{
    char str[512];
    
    pc.printf("----------------\n");
    pc.printf("Murata TypeYD - HTTPClient example\n");

    //wifi init
    int ret = wifi.init();
    if (!ret) {
        printf("Initialized\n");
    } else {
        printf("Error wifi.init() - ret = %d\n", ret);
        return -1;
    }
    wait(0.5);

    //wifi disconnect for sure of wifi init
    ret = wifi.disconnect();
    wait(0.5);

    //get wifi firm ware version
    ret = wifi.getFWVersion((unsigned char *)str);
    if (!ret) {
        printf("Firmware version: %s\n", str);
    } else {
        printf("Error wifi.getFWVersion() - ret = %d\n", ret);
        return -1;
    }
    wait(0.5);

    //wifi settings
    ret = wifi.connect( WIFI_SSID, strlen(WIFI_SSID)
                        , WIFI_SECURITY_TYPE
                        , WIFI_SECUTIRY_KEY, strlen(WIFI_SECUTIRY_KEY) );
    if (!ret) {
        printf("Wifi Connected\n");
    } else {
        printf("Error wifi.connect() - ret = %d\n", ret);
        return -1;
    }

    // Use DHCP
    wifi.setIPConfig( true );
    //wifi.setIPConfig( false, "192.168.0.48", "255.255.255.0", "192.168.0.1" );
    wait(0.5);
    
    return 0;
}


void disconnect(){
    int ret = wifi.disconnect();
    if (!ret) {
        printf("Disconnected\n");
    } else {
        printf("Error wifi.disconnect() - ret = %d\n", ret);
    }
    while(1) {
    }
}


void output_result(const char* count)
{
    int i;
    long value;
    char *endp;
    
    for(i=0; i<4; i++){ led[i] = 0; }
    
    if(!count || count[0] == '\0'){
        return;
    }
    
    value = strtol(count, &endp, 10);
    if(*endp != '\0'){
        return;
    }
    
    if(value > 0){
        led[0] = (value > 0);
        led[1] = (value > THRESHOLD1);
        led[2] = (value > THRESHOLD2);
        led[3] = (value > THRESHOLD3);
    }
}


int main()
{
    char count[11];
    int ret, i = 0;
    HTTPClient http;
    Ticker ticker; 
    
    //for debug setting
    pc.baud( 115200 ); //for debug setting

    if(connect() < 0){
        return -1;
    }    
    
    led[0] = 1;
    
    ticker.attach(&disconnect, MAX_SENSING_SEC);// interrupt disconnect method running after MAX_SENSING_SEC

    // GET data
    while(1){
        printf("\r\nTrying to GET request...\r\n");
        i = rand() % MAX_SITE;
        ret = http.get(twitter_url[i], count, sizeof(count) - 1);
        if (!ret) {
            printf("Page fetched successfully - read %d characters\r\n", strlen(count));
            printf("Tweet Count: %s\r\n", count);
            
            output_result(count);            
        } else {
            printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
        }
        
        wait(INTERVAL_SEC);
    }
}