Fx0からツイート数を取得してLEDを点灯するサンプル
Dependencies: HTTPClient_Tweet SNICInterface_Tweet mbed-rtos mbed
main.cpp@0:e4d8036affda, 2015-02-10 (annotated)
- Committer:
- komoritan
- Date:
- Tue Feb 10 12:27:53 2015 +0000
- Revision:
- 0:e4d8036affda
Fixed
Who changed what in which revision?
User | Revision | Line number | New 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 | } |