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

Dependencies:   HTTPClient_Tweet SNICInterface_Tweet mbed-rtos mbed

Committer:
komoritan
Date:
Tue Feb 10 12:27:53 2015 +0000
Revision:
0:e4d8036affda
Fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
komoritan 0:e4d8036affda 1 #include "mbed.h"
komoritan 0:e4d8036affda 2 #include "SNIC_WifiInterface.h"
komoritan 0:e4d8036affda 3 #include "HTTPClient.h"
komoritan 0:e4d8036affda 4
komoritan 0:e4d8036affda 5 #define WIFI_SSID ""
komoritan 0:e4d8036affda 6 #define WIFI_SECUTIRY_KEY ""
komoritan 0:e4d8036affda 7 //#define WIFI_SECURITY_TYPE e_SEC_OPEN
komoritan 0:e4d8036affda 8 //#define WIFI_SECURITY_TYPE e_SEC_WEP
komoritan 0:e4d8036affda 9 //#define WIFI_SECURITY_TYPE e_SEC_WPA_TKIP
komoritan 0:e4d8036affda 10 #define WIFI_SECURITY_TYPE e_SEC_WPA2_AES
komoritan 0:e4d8036affda 11 //#define WIFI_SECURITY_TYPE e_SEC_WPA2_MIXED
komoritan 0:e4d8036affda 12 //#define WIFI_SECURITY_TYPE e_SEC_WPA_AES
komoritan 0:e4d8036affda 13
komoritan 0:e4d8036affda 14 #define MAX_SENSING_SEC 60
komoritan 0:e4d8036affda 15 #define INTERVAL_SEC 3
komoritan 0:e4d8036affda 16
komoritan 0:e4d8036affda 17 #define MAX_SITE 7
komoritan 0:e4d8036affda 18 char *twitter_url[MAX_SITE]= {
komoritan 0:e4d8036affda 19 "http://192.168.0.1:3000/tweet_count?url=http://au-fx.kddi.com/",
komoritan 0:e4d8036affda 20 "http://192.168.0.1:3000/tweet_count?url=http://www.au.kddi.com/",
komoritan 0:e4d8036affda 21 "http://192.168.0.1:3000/tweet_count?url=http://www.kddi.com/",
komoritan 0:e4d8036affda 22 "http://192.168.0.1:3000/tweet_count?url=http://www.kddilabs.jp/",
komoritan 0:e4d8036affda 23 "http://192.168.0.1:3000/tweet_count?url=http://www.mozilla.org/",
komoritan 0:e4d8036affda 24 "http://192.168.0.1:3000/tweet_count?url=http://www.apple.com/",
komoritan 0:e4d8036affda 25 "http://192.168.0.1:3000/tweet_count?url=http://www.google.com/"
komoritan 0:e4d8036affda 26 };
komoritan 0:e4d8036affda 27
komoritan 0:e4d8036affda 28 #define THRESHOLD1 100
komoritan 0:e4d8036affda 29 #define THRESHOLD2 1000
komoritan 0:e4d8036affda 30 #define THRESHOLD3 10000
komoritan 0:e4d8036affda 31
komoritan 0:e4d8036affda 32
komoritan 0:e4d8036affda 33 DigitalOut led[]={LED1,LED2,LED3,LED4};
komoritan 0:e4d8036affda 34
komoritan 0:e4d8036affda 35 #if defined(TARGET_LPC1768)
komoritan 0:e4d8036affda 36 C_SNIC_WifiInterface wifi( p13, p14, p12, p11, p20 );
komoritan 0:e4d8036affda 37 Serial pc(USBTX, USBRX); // This is required when defined "_DEBUG"
komoritan 0:e4d8036affda 38 #else
komoritan 0:e4d8036affda 39 #error no defined pin.
komoritan 0:e4d8036affda 40 #endif
komoritan 0:e4d8036affda 41
komoritan 0:e4d8036affda 42
komoritan 0:e4d8036affda 43 int connect()
komoritan 0:e4d8036affda 44 {
komoritan 0:e4d8036affda 45 char str[512];
komoritan 0:e4d8036affda 46
komoritan 0:e4d8036affda 47 pc.printf("----------------\n");
komoritan 0:e4d8036affda 48 pc.printf("Murata TypeYD - HTTPClient example\n");
komoritan 0:e4d8036affda 49
komoritan 0:e4d8036affda 50 //wifi init
komoritan 0:e4d8036affda 51 int ret = wifi.init();
komoritan 0:e4d8036affda 52 if (!ret) {
komoritan 0:e4d8036affda 53 printf("Initialized\n");
komoritan 0:e4d8036affda 54 } else {
komoritan 0:e4d8036affda 55 printf("Error wifi.init() - ret = %d\n", ret);
komoritan 0:e4d8036affda 56 return -1;
komoritan 0:e4d8036affda 57 }
komoritan 0:e4d8036affda 58 wait(0.5);
komoritan 0:e4d8036affda 59
komoritan 0:e4d8036affda 60 //wifi disconnect for sure of wifi init
komoritan 0:e4d8036affda 61 ret = wifi.disconnect();
komoritan 0:e4d8036affda 62 wait(0.5);
komoritan 0:e4d8036affda 63
komoritan 0:e4d8036affda 64 //get wifi firm ware version
komoritan 0:e4d8036affda 65 ret = wifi.getFWVersion((unsigned char *)str);
komoritan 0:e4d8036affda 66 if (!ret) {
komoritan 0:e4d8036affda 67 printf("Firmware version: %s\n", str);
komoritan 0:e4d8036affda 68 } else {
komoritan 0:e4d8036affda 69 printf("Error wifi.getFWVersion() - ret = %d\n", ret);
komoritan 0:e4d8036affda 70 return -1;
komoritan 0:e4d8036affda 71 }
komoritan 0:e4d8036affda 72 wait(0.5);
komoritan 0:e4d8036affda 73
komoritan 0:e4d8036affda 74 //wifi settings
komoritan 0:e4d8036affda 75 ret = wifi.connect( WIFI_SSID, strlen(WIFI_SSID)
komoritan 0:e4d8036affda 76 , WIFI_SECURITY_TYPE
komoritan 0:e4d8036affda 77 , WIFI_SECUTIRY_KEY, strlen(WIFI_SECUTIRY_KEY) );
komoritan 0:e4d8036affda 78 if (!ret) {
komoritan 0:e4d8036affda 79 printf("Wifi Connected\n");
komoritan 0:e4d8036affda 80 } else {
komoritan 0:e4d8036affda 81 printf("Error wifi.connect() - ret = %d\n", ret);
komoritan 0:e4d8036affda 82 return -1;
komoritan 0:e4d8036affda 83 }
komoritan 0:e4d8036affda 84
komoritan 0:e4d8036affda 85 // Use DHCP
komoritan 0:e4d8036affda 86 wifi.setIPConfig( true );
komoritan 0:e4d8036affda 87 //wifi.setIPConfig( false, "192.168.0.48", "255.255.255.0", "192.168.0.1" );
komoritan 0:e4d8036affda 88 wait(0.5);
komoritan 0:e4d8036affda 89
komoritan 0:e4d8036affda 90 return 0;
komoritan 0:e4d8036affda 91 }
komoritan 0:e4d8036affda 92
komoritan 0:e4d8036affda 93
komoritan 0:e4d8036affda 94 void disconnect(){
komoritan 0:e4d8036affda 95 int ret = wifi.disconnect();
komoritan 0:e4d8036affda 96 if (!ret) {
komoritan 0:e4d8036affda 97 printf("Disconnected\n");
komoritan 0:e4d8036affda 98 } else {
komoritan 0:e4d8036affda 99 printf("Error wifi.disconnect() - ret = %d\n", ret);
komoritan 0:e4d8036affda 100 }
komoritan 0:e4d8036affda 101 while(1) {
komoritan 0:e4d8036affda 102 }
komoritan 0:e4d8036affda 103 }
komoritan 0:e4d8036affda 104
komoritan 0:e4d8036affda 105
komoritan 0:e4d8036affda 106 void output_result(const char* count)
komoritan 0:e4d8036affda 107 {
komoritan 0:e4d8036affda 108 int i;
komoritan 0:e4d8036affda 109 long value;
komoritan 0:e4d8036affda 110 char *endp;
komoritan 0:e4d8036affda 111
komoritan 0:e4d8036affda 112 for(i=0; i<4; i++){ led[i] = 0; }
komoritan 0:e4d8036affda 113
komoritan 0:e4d8036affda 114 if(!count || count[0] == '\0'){
komoritan 0:e4d8036affda 115 return;
komoritan 0:e4d8036affda 116 }
komoritan 0:e4d8036affda 117
komoritan 0:e4d8036affda 118 value = strtol(count, &endp, 10);
komoritan 0:e4d8036affda 119 if(*endp != '\0'){
komoritan 0:e4d8036affda 120 return;
komoritan 0:e4d8036affda 121 }
komoritan 0:e4d8036affda 122
komoritan 0:e4d8036affda 123 if(value > 0){
komoritan 0:e4d8036affda 124 led[0] = (value > 0);
komoritan 0:e4d8036affda 125 led[1] = (value > THRESHOLD1);
komoritan 0:e4d8036affda 126 led[2] = (value > THRESHOLD2);
komoritan 0:e4d8036affda 127 led[3] = (value > THRESHOLD3);
komoritan 0:e4d8036affda 128 }
komoritan 0:e4d8036affda 129 }
komoritan 0:e4d8036affda 130
komoritan 0:e4d8036affda 131
komoritan 0:e4d8036affda 132 int main()
komoritan 0:e4d8036affda 133 {
komoritan 0:e4d8036affda 134 char count[11];
komoritan 0:e4d8036affda 135 int ret, i = 0;
komoritan 0:e4d8036affda 136 HTTPClient http;
komoritan 0:e4d8036affda 137 Ticker ticker;
komoritan 0:e4d8036affda 138
komoritan 0:e4d8036affda 139 //for debug setting
komoritan 0:e4d8036affda 140 pc.baud( 115200 ); //for debug setting
komoritan 0:e4d8036affda 141
komoritan 0:e4d8036affda 142 if(connect() < 0){
komoritan 0:e4d8036affda 143 return -1;
komoritan 0:e4d8036affda 144 }
komoritan 0:e4d8036affda 145
komoritan 0:e4d8036affda 146 led[0] = 1;
komoritan 0:e4d8036affda 147
komoritan 0:e4d8036affda 148 ticker.attach(&disconnect, MAX_SENSING_SEC);// interrupt disconnect method running after MAX_SENSING_SEC
komoritan 0:e4d8036affda 149
komoritan 0:e4d8036affda 150 // GET data
komoritan 0:e4d8036affda 151 while(1){
komoritan 0:e4d8036affda 152 printf("\r\nTrying to GET request...\r\n");
komoritan 0:e4d8036affda 153 i = rand() % MAX_SITE;
komoritan 0:e4d8036affda 154 ret = http.get(twitter_url[i], count, sizeof(count) - 1);
komoritan 0:e4d8036affda 155 if (!ret) {
komoritan 0:e4d8036affda 156 printf("Page fetched successfully - read %d characters\r\n", strlen(count));
komoritan 0:e4d8036affda 157 printf("Tweet Count: %s\r\n", count);
komoritan 0:e4d8036affda 158
komoritan 0:e4d8036affda 159 output_result(count);
komoritan 0:e4d8036affda 160 } else {
komoritan 0:e4d8036affda 161 printf("Error - ret = %d - HTTP return code = %d\r\n", ret, http.getHTTPResponseCode());
komoritan 0:e4d8036affda 162 }
komoritan 0:e4d8036affda 163
komoritan 0:e4d8036affda 164 wait(INTERVAL_SEC);
komoritan 0:e4d8036affda 165 }
komoritan 0:e4d8036affda 166 }