Fx0からツイート数を取得してLEDを点灯するサンプル
Dependencies: HTTPClient_Tweet SNICInterface_Tweet mbed-rtos mbed
Diff: main.cpp
- Revision:
- 0:e4d8036affda
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Feb 10 12:27:53 2015 +0000 @@ -0,0 +1,166 @@ +#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); + } +}