Tenki yoho LED kit2

Dependencies:   mbed

Committer:
kohacraft
Date:
Tue May 17 01:46:09 2016 +0000
Revision:
0:82aac34e1141
Child:
1:1c83ef47372a
ver1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kohacraft 0:82aac34e1141 1 #include "mbed.h"
kohacraft 0:82aac34e1141 2 #include <string.h>
kohacraft 0:82aac34e1141 3
kohacraft 0:82aac34e1141 4 Serial wifi(dp16, dp15); // ESP-WROOM-02 tx, rx
kohacraft 0:82aac34e1141 5 DigitalOut wifiRst(dp17); // /ESP-WROOM-02 RESET
kohacraft 0:82aac34e1141 6
kohacraft 0:82aac34e1141 7 DigitalOut sunny(dp1); //dp1を晴れのLEDにつなぎます
kohacraft 0:82aac34e1141 8 DigitalOut cloudy(dp2); //dp2を曇りのLEDにつなぎます
kohacraft 0:82aac34e1141 9 DigitalOut rainy(dp4); //dp4を雨のLEDにつなぎます
kohacraft 0:82aac34e1141 10 DigitalOut snowy(dp6); //dp6を雪のLEDににつなぎます
kohacraft 0:82aac34e1141 11
kohacraft 0:82aac34e1141 12 #define baudrate 115200
kohacraft 0:82aac34e1141 13
kohacraft 0:82aac34e1141 14 static char rxbuff[1500]; //ネットから取得するデータの格納場所
kohacraft 0:82aac34e1141 15 int buffAdr = 0;
kohacraft 0:82aac34e1141 16
kohacraft 0:82aac34e1141 17 const char SSID[] = "your SSDI"; //アクセスポイントのSSID
kohacraft 0:82aac34e1141 18 const char PASS[] = "password"; //アクセスポイントのパスワード
kohacraft 0:82aac34e1141 19 const char WOEID[] = "1118370"; //天気を調べる場所 http://woeid.rosselliot.co.nz/ で郵便番号で検索して得られる番号
kohacraft 0:82aac34e1141 20
kohacraft 0:82aac34e1141 21 //データを受信する(1秒くらいは受信する)
kohacraft 0:82aac34e1141 22 bool recvData(int throwDataSize)
kohacraft 0:82aac34e1141 23 {
kohacraft 0:82aac34e1141 24 bool ret = false;
kohacraft 0:82aac34e1141 25 buffAdr = 0;
kohacraft 0:82aac34e1141 26 rxbuff[0] = '\0';
kohacraft 0:82aac34e1141 27
kohacraft 0:82aac34e1141 28 int headerCount = 0;
kohacraft 0:82aac34e1141 29
kohacraft 0:82aac34e1141 30 //700000回ループしたらタイムアウトする(約1秒)
kohacraft 0:82aac34e1141 31 for( int i = 0; i < 700000 ; i++ )
kohacraft 0:82aac34e1141 32 {
kohacraft 0:82aac34e1141 33 if( wifi.readable() != 0 )
kohacraft 0:82aac34e1141 34 {
kohacraft 0:82aac34e1141 35 rxbuff[buffAdr++] = wifi.getc(); //Serial.getc()
kohacraft 0:82aac34e1141 36 headerCount++;
kohacraft 0:82aac34e1141 37 if( headerCount <= throwDataSize ) //最初のthrowDataSize文字捨てる
kohacraft 0:82aac34e1141 38 buffAdr=0;
kohacraft 0:82aac34e1141 39 if( buffAdr >= sizeof(rxbuff)-1 ) //バッファ溢れしたら終了
kohacraft 0:82aac34e1141 40 {
kohacraft 0:82aac34e1141 41 ret = true;
kohacraft 0:82aac34e1141 42 i=700000; //loopを早く終わらすために
kohacraft 0:82aac34e1141 43 break;
kohacraft 0:82aac34e1141 44 }
kohacraft 0:82aac34e1141 45
kohacraft 0:82aac34e1141 46 }
kohacraft 0:82aac34e1141 47 }
kohacraft 0:82aac34e1141 48
kohacraft 0:82aac34e1141 49 //文字列の最後を終端
kohacraft 0:82aac34e1141 50 buffAdr = '\0';
kohacraft 0:82aac34e1141 51 rxbuff[sizeof(rxbuff)-1] = '\0';
kohacraft 0:82aac34e1141 52 return ret;
kohacraft 0:82aac34e1141 53 }
kohacraft 0:82aac34e1141 54
kohacraft 0:82aac34e1141 55 //文字列から予報天気を抽出
kohacraft 0:82aac34e1141 56 bool getWeather( char* str , int* weatherCord , int* tempLow , int* tempHi )
kohacraft 0:82aac34e1141 57 {
kohacraft 0:82aac34e1141 58 //文字列探索
kohacraft 0:82aac34e1141 59 char *forecast;
kohacraft 0:82aac34e1141 60 if ( (forecast = strstr(str, "yweather:forecast") ) == NULL )
kohacraft 0:82aac34e1141 61 {
kohacraft 0:82aac34e1141 62 //取得できず
kohacraft 0:82aac34e1141 63 weatherCord = 0;
kohacraft 0:82aac34e1141 64 tempLow = 0;
kohacraft 0:82aac34e1141 65 tempLow = 0;
kohacraft 0:82aac34e1141 66 return false;
kohacraft 0:82aac34e1141 67 }
kohacraft 0:82aac34e1141 68
kohacraft 0:82aac34e1141 69 //天気コードを抽出
kohacraft 0:82aac34e1141 70 char *codeStart,*codeEnd;
kohacraft 0:82aac34e1141 71 codeStart = strstr(forecast, "code=");
kohacraft 0:82aac34e1141 72 codeStart = strchr( codeStart , '\"' );
kohacraft 0:82aac34e1141 73 codeStart++; //"の次の文字のポインタ
kohacraft 0:82aac34e1141 74 codeEnd = strchr( codeStart , '\"' );
kohacraft 0:82aac34e1141 75 *codeEnd = '\0';
kohacraft 0:82aac34e1141 76 *weatherCord = atoi( codeStart ); //最高気温を数字に変換
kohacraft 0:82aac34e1141 77
kohacraft 0:82aac34e1141 78 //最高気温を抽出
kohacraft 0:82aac34e1141 79 char *hiStart,*hiEnd;
kohacraft 0:82aac34e1141 80 hiStart = strstr(codeEnd+1, "high=");
kohacraft 0:82aac34e1141 81 hiStart = strchr( hiStart , '\"' );
kohacraft 0:82aac34e1141 82 hiStart++; //"の次の文字のポインタ
kohacraft 0:82aac34e1141 83 hiEnd = strchr( hiStart , '\"' );
kohacraft 0:82aac34e1141 84 *hiEnd = '\0';
kohacraft 0:82aac34e1141 85 *tempHi = atoi( hiStart ); //最高気温を数字に変換
kohacraft 0:82aac34e1141 86
kohacraft 0:82aac34e1141 87 //最低気温を抽出
kohacraft 0:82aac34e1141 88 char *lowStart,*lowEnd;
kohacraft 0:82aac34e1141 89 lowStart = strstr(hiEnd+1, "low=");
kohacraft 0:82aac34e1141 90 lowStart = strchr( lowStart , '\"' );
kohacraft 0:82aac34e1141 91 lowStart++; //"の次の文字のポインタ
kohacraft 0:82aac34e1141 92 lowEnd = strchr( lowStart , '\"' );
kohacraft 0:82aac34e1141 93 *lowEnd = '\0';
kohacraft 0:82aac34e1141 94 *tempLow = atoi( lowStart ); //最低気温を数字に変換
kohacraft 0:82aac34e1141 95
kohacraft 0:82aac34e1141 96 //天気を抽出
kohacraft 0:82aac34e1141 97 char *textStart,*textEnd;
kohacraft 0:82aac34e1141 98 char weatherText[32];
kohacraft 0:82aac34e1141 99 textStart = strstr(lowEnd+1, "text=");
kohacraft 0:82aac34e1141 100 textStart = strchr( textStart , '\"' );
kohacraft 0:82aac34e1141 101 textStart++; //"の次の文字のポインタ
kohacraft 0:82aac34e1141 102 textEnd = strchr( textStart , '\"' );
kohacraft 0:82aac34e1141 103 *textEnd = '\0';
kohacraft 0:82aac34e1141 104 strncpy( weatherText, textStart , 32);
kohacraft 0:82aac34e1141 105
kohacraft 0:82aac34e1141 106 return true;
kohacraft 0:82aac34e1141 107 }
kohacraft 0:82aac34e1141 108
kohacraft 0:82aac34e1141 109 //LEDを順番に光らせる
kohacraft 0:82aac34e1141 110 void ledIlluminationWait()
kohacraft 0:82aac34e1141 111 {
kohacraft 0:82aac34e1141 112 snowy = 0;
kohacraft 0:82aac34e1141 113 sunny = 1;
kohacraft 0:82aac34e1141 114 wait(0.5);
kohacraft 0:82aac34e1141 115
kohacraft 0:82aac34e1141 116 sunny = 0;
kohacraft 0:82aac34e1141 117 cloudy = 1;
kohacraft 0:82aac34e1141 118 wait(0.5);
kohacraft 0:82aac34e1141 119
kohacraft 0:82aac34e1141 120 cloudy = 0;
kohacraft 0:82aac34e1141 121 rainy = 1;
kohacraft 0:82aac34e1141 122 wait(0.5);
kohacraft 0:82aac34e1141 123
kohacraft 0:82aac34e1141 124 rainy = 0;
kohacraft 0:82aac34e1141 125 snowy = 1;
kohacraft 0:82aac34e1141 126 wait(0.5);
kohacraft 0:82aac34e1141 127
kohacraft 0:82aac34e1141 128 }
kohacraft 0:82aac34e1141 129
kohacraft 0:82aac34e1141 130
kohacraft 0:82aac34e1141 131 //OKの文字列を受信するまで待つ timeが0なら永久に待つ
kohacraft 0:82aac34e1141 132 //time*1[秒]待つ (time=10は10秒待つ)
kohacraft 0:82aac34e1141 133 bool waitOk(int time)
kohacraft 0:82aac34e1141 134 {
kohacraft 0:82aac34e1141 135 bool ret = false;
kohacraft 0:82aac34e1141 136 int addNumber = 1;
kohacraft 0:82aac34e1141 137 if( time == 0 )
kohacraft 0:82aac34e1141 138 {
kohacraft 0:82aac34e1141 139 addNumber = 0;
kohacraft 0:82aac34e1141 140 time = 1;
kohacraft 0:82aac34e1141 141 }
kohacraft 0:82aac34e1141 142 for( int i = 0 ; i<time ; i+=addNumber )
kohacraft 0:82aac34e1141 143 {
kohacraft 0:82aac34e1141 144 recvData(0);
kohacraft 0:82aac34e1141 145 if( strstr(rxbuff, "OK") != NULL )
kohacraft 0:82aac34e1141 146 {
kohacraft 0:82aac34e1141 147 ret = true;
kohacraft 0:82aac34e1141 148 break;
kohacraft 0:82aac34e1141 149 }
kohacraft 0:82aac34e1141 150 }
kohacraft 0:82aac34e1141 151 return ret;
kohacraft 0:82aac34e1141 152 }
kohacraft 0:82aac34e1141 153
kohacraft 0:82aac34e1141 154 int main() {
kohacraft 0:82aac34e1141 155
kohacraft 0:82aac34e1141 156 //天気情報
kohacraft 0:82aac34e1141 157 bool sun = 0;
kohacraft 0:82aac34e1141 158 bool rain = 0;
kohacraft 0:82aac34e1141 159 bool cloud = 0;
kohacraft 0:82aac34e1141 160 bool snow = 0;
kohacraft 0:82aac34e1141 161
kohacraft 0:82aac34e1141 162 wifi.baud(baudrate); //ビットレートを設定
kohacraft 0:82aac34e1141 163
kohacraft 0:82aac34e1141 164 while(1)
kohacraft 0:82aac34e1141 165 {
kohacraft 0:82aac34e1141 166 //無線LANモジュールをリセット
kohacraft 0:82aac34e1141 167 wifiRst = 0;
kohacraft 0:82aac34e1141 168 wait_ms(100);
kohacraft 0:82aac34e1141 169 wifiRst = 1;
kohacraft 0:82aac34e1141 170
kohacraft 0:82aac34e1141 171 //無線LANモジュールが安定するのを待つ
kohacraft 0:82aac34e1141 172 ledIlluminationWait();
kohacraft 0:82aac34e1141 173 ledIlluminationWait();
kohacraft 0:82aac34e1141 174 ledIlluminationWait();
kohacraft 0:82aac34e1141 175 ledIlluminationWait();
kohacraft 0:82aac34e1141 176 ledIlluminationWait();
kohacraft 0:82aac34e1141 177
kohacraft 0:82aac34e1141 178 //最初にlanモジュールから出力される文字列を捨てる
kohacraft 0:82aac34e1141 179 char temp;
kohacraft 0:82aac34e1141 180 while( wifi.readable() == 1 )
kohacraft 0:82aac34e1141 181 temp = wifi.getc();
kohacraft 0:82aac34e1141 182
kohacraft 0:82aac34e1141 183 //ATコマンドで無線LANモジュールをクライアントモードにする
kohacraft 0:82aac34e1141 184 sunny = 1; cloudy = 0; rainy = 0; snowy = 0; //晴れが光っぱなしの場合はwifiジュールと通信できていない
kohacraft 0:82aac34e1141 185 wifi.printf("AT\r\n");
kohacraft 0:82aac34e1141 186 waitOk(0);
kohacraft 0:82aac34e1141 187
kohacraft 0:82aac34e1141 188 sunny = 0; cloudy = 1; rainy = 0; snowy = 0;
kohacraft 0:82aac34e1141 189 wifi.printf("AT+CWMODE=1\r\n");
kohacraft 0:82aac34e1141 190 waitOk(0);
kohacraft 0:82aac34e1141 191
kohacraft 0:82aac34e1141 192 //アクセスポイントに接続
kohacraft 0:82aac34e1141 193 sunny = 0; cloudy = 0; rainy = 1; snowy = 0; //雨が光っぱなしの場合はアクセスポイントにつながらない
kohacraft 0:82aac34e1141 194 wifi.printf("AT+CWJAP=\"%s\",\"%s\"\r\n",SSID,PASS);
kohacraft 0:82aac34e1141 195 waitOk(0);
kohacraft 0:82aac34e1141 196
kohacraft 0:82aac34e1141 197 while(1)
kohacraft 0:82aac34e1141 198 {
kohacraft 0:82aac34e1141 199 //LEDを消灯
kohacraft 0:82aac34e1141 200 sunny = 0; cloudy = 0; rainy = 0; snowy = 0; //全てが消え続ける場合はサーバーにつながらない
kohacraft 0:82aac34e1141 201
kohacraft 0:82aac34e1141 202 //サーバに接続
kohacraft 0:82aac34e1141 203 wifi.printf("AT+CIPSTART=\"TCP\",\"query.yahooapis.com\",80\r\n");
kohacraft 0:82aac34e1141 204 if( waitOk(3600) == false )
kohacraft 0:82aac34e1141 205 break; //1時間待っても返事が無ければ最初からやり直し
kohacraft 0:82aac34e1141 206
kohacraft 0:82aac34e1141 207 //サーバに天気データを要求
kohacraft 0:82aac34e1141 208 char str[250];
kohacraft 0:82aac34e1141 209 sprintf(str , "GET http://query.yahooapis.com/v1/public/yql?q=SELECT%%20*%%20FROM%%20weather.forecast%%20WHERE%%20woeid%%3D%%22%s%%22%20and%%20u%%3D%%22c%%22\r\nHost: query.yahooapis.com\r\nConnection: close\r\n\r\n\r\n",WOEID);
kohacraft 0:82aac34e1141 210 wifi.printf("AT+CIPSEND=%d\r\n",strlen(str));
kohacraft 0:82aac34e1141 211 if( waitOk(3600) == false )
kohacraft 0:82aac34e1141 212 break; //1時間待っても返事が無ければ最初からやり直し
kohacraft 0:82aac34e1141 213
kohacraft 0:82aac34e1141 214 wifi.printf("%s",str);
kohacraft 0:82aac34e1141 215 recvData(1500); //データの受信(最初の1500文字を捨てる)
kohacraft 0:82aac34e1141 216 //wifi.printf("%s\r\n",rxbuff); //*** デバッグ用 *** バッファの内容を出力
kohacraft 0:82aac34e1141 217
kohacraft 0:82aac34e1141 218 //文字列探索
kohacraft 0:82aac34e1141 219 sunny = 0; cloudy = 0; rainy = 0; snowy = 1; //雪が光っぱなしの場合は天気情報が得られてない
kohacraft 0:82aac34e1141 220 int weatherCord , tempHi , tempLow;
kohacraft 0:82aac34e1141 221 if( getWeather( rxbuff , &weatherCord , &tempLow , &tempHi ) == false ) //データの受信
kohacraft 0:82aac34e1141 222 {
kohacraft 0:82aac34e1141 223 //予報の文字列がない
kohacraft 0:82aac34e1141 224 wait(30);
kohacraft 0:82aac34e1141 225 break; //30秒待って最初からやり直す
kohacraft 0:82aac34e1141 226 }
kohacraft 0:82aac34e1141 227
kohacraft 0:82aac34e1141 228 //*** ↓デバッグ用 *** 受信した天気情報を出力
kohacraft 0:82aac34e1141 229 //wifi.printf("weatherCord:%d tempLow:%d tempHi:%d\r\n",weatherCord , tempLow , tempHi);
kohacraft 0:82aac34e1141 230
kohacraft 0:82aac34e1141 231
kohacraft 0:82aac34e1141 232 //天気をLEDの色に変換する
kohacraft 0:82aac34e1141 233 switch(weatherCord)
kohacraft 0:82aac34e1141 234 {
kohacraft 0:82aac34e1141 235 //晴れ
kohacraft 0:82aac34e1141 236 case 24:
kohacraft 0:82aac34e1141 237 case 25:
kohacraft 0:82aac34e1141 238 case 31:
kohacraft 0:82aac34e1141 239 case 32:
kohacraft 0:82aac34e1141 240 case 36:
kohacraft 0:82aac34e1141 241 case 29:
kohacraft 0:82aac34e1141 242 case 30:
kohacraft 0:82aac34e1141 243 case 33:
kohacraft 0:82aac34e1141 244 case 34:
kohacraft 0:82aac34e1141 245 case 44:
kohacraft 0:82aac34e1141 246 sun = 1;
kohacraft 0:82aac34e1141 247 rain = 0;
kohacraft 0:82aac34e1141 248 cloud = 0;
kohacraft 0:82aac34e1141 249 snow = 0;
kohacraft 0:82aac34e1141 250 break;
kohacraft 0:82aac34e1141 251
kohacraft 0:82aac34e1141 252 //曇り
kohacraft 0:82aac34e1141 253 case 19:
kohacraft 0:82aac34e1141 254 case 21:
kohacraft 0:82aac34e1141 255 case 22:
kohacraft 0:82aac34e1141 256 case 23:
kohacraft 0:82aac34e1141 257 case 26:
kohacraft 0:82aac34e1141 258 case 27:
kohacraft 0:82aac34e1141 259 case 28:
kohacraft 0:82aac34e1141 260 sun = 0;
kohacraft 0:82aac34e1141 261 rain = 0;
kohacraft 0:82aac34e1141 262 cloud = 1;
kohacraft 0:82aac34e1141 263 snow = 0;
kohacraft 0:82aac34e1141 264 break;
kohacraft 0:82aac34e1141 265
kohacraft 0:82aac34e1141 266 //雨
kohacraft 0:82aac34e1141 267 case 0:
kohacraft 0:82aac34e1141 268 case 1:
kohacraft 0:82aac34e1141 269 case 2:
kohacraft 0:82aac34e1141 270 case 3:
kohacraft 0:82aac34e1141 271 case 4:
kohacraft 0:82aac34e1141 272 case 6:
kohacraft 0:82aac34e1141 273 case 12:
kohacraft 0:82aac34e1141 274 case 17:
kohacraft 0:82aac34e1141 275 case 38:
kohacraft 0:82aac34e1141 276 case 39:
kohacraft 0:82aac34e1141 277 case 40:
kohacraft 0:82aac34e1141 278 case 45:
kohacraft 0:82aac34e1141 279 case 47:
kohacraft 0:82aac34e1141 280 case 5:
kohacraft 0:82aac34e1141 281 case 10:
kohacraft 0:82aac34e1141 282 case 18:
kohacraft 0:82aac34e1141 283 case 35:
kohacraft 0:82aac34e1141 284 case 9:
kohacraft 0:82aac34e1141 285 case 11:
kohacraft 0:82aac34e1141 286 case 20:
kohacraft 0:82aac34e1141 287 case 37:
kohacraft 0:82aac34e1141 288 sun = 0;
kohacraft 0:82aac34e1141 289 rain = 1;
kohacraft 0:82aac34e1141 290 cloud = 0;
kohacraft 0:82aac34e1141 291 snow = 0;
kohacraft 0:82aac34e1141 292 break;
kohacraft 0:82aac34e1141 293
kohacraft 0:82aac34e1141 294 //雪
kohacraft 0:82aac34e1141 295 case 7:
kohacraft 0:82aac34e1141 296 case 8:
kohacraft 0:82aac34e1141 297 case 13:
kohacraft 0:82aac34e1141 298 case 14:
kohacraft 0:82aac34e1141 299 case 15:
kohacraft 0:82aac34e1141 300 case 16:
kohacraft 0:82aac34e1141 301 case 41:
kohacraft 0:82aac34e1141 302 case 42:
kohacraft 0:82aac34e1141 303 case 43:
kohacraft 0:82aac34e1141 304 case 46:
kohacraft 0:82aac34e1141 305 sun = 0;
kohacraft 0:82aac34e1141 306 rain = 0;
kohacraft 0:82aac34e1141 307 cloud = 0;
kohacraft 0:82aac34e1141 308 snow = 1;
kohacraft 0:82aac34e1141 309 break;
kohacraft 0:82aac34e1141 310
kohacraft 0:82aac34e1141 311
kohacraft 0:82aac34e1141 312 }
kohacraft 0:82aac34e1141 313
kohacraft 0:82aac34e1141 314 //LEDを点滅させながら1時間待つ
kohacraft 0:82aac34e1141 315 for(int i=0 ; i<60*60 ; i++)
kohacraft 0:82aac34e1141 316 {
kohacraft 0:82aac34e1141 317 //LEDを点灯
kohacraft 0:82aac34e1141 318 sunny = sun;
kohacraft 0:82aac34e1141 319 rainy = rain;
kohacraft 0:82aac34e1141 320 cloudy = cloud;
kohacraft 0:82aac34e1141 321 snowy = snow;
kohacraft 0:82aac34e1141 322 wait(0.5);
kohacraft 0:82aac34e1141 323
kohacraft 0:82aac34e1141 324 //LEDを消灯
kohacraft 0:82aac34e1141 325 sunny = 0;
kohacraft 0:82aac34e1141 326 rainy = 0;
kohacraft 0:82aac34e1141 327 cloudy = 0;
kohacraft 0:82aac34e1141 328 snowy = 0;
kohacraft 0:82aac34e1141 329 wait(0.5);
kohacraft 0:82aac34e1141 330 }
kohacraft 0:82aac34e1141 331 }
kohacraft 0:82aac34e1141 332 }
kohacraft 0:82aac34e1141 333 }
kohacraft 0:82aac34e1141 334
kohacraft 0:82aac34e1141 335 /* weather Cords
kohacraft 0:82aac34e1141 336 0 tornado
kohacraft 0:82aac34e1141 337 1 tropical storm
kohacraft 0:82aac34e1141 338 2 hurricane
kohacraft 0:82aac34e1141 339 3 severe thunderstorms
kohacraft 0:82aac34e1141 340 4 thunderstorms
kohacraft 0:82aac34e1141 341 5 mixed rain and snow
kohacraft 0:82aac34e1141 342 6 mixed rain and sleet
kohacraft 0:82aac34e1141 343 7 mixed snow and sleet
kohacraft 0:82aac34e1141 344 8 freezing drizzle
kohacraft 0:82aac34e1141 345 9 drizzle
kohacraft 0:82aac34e1141 346 10 freezing rain
kohacraft 0:82aac34e1141 347 11 showers
kohacraft 0:82aac34e1141 348 12 showers
kohacraft 0:82aac34e1141 349 13 snow flurries
kohacraft 0:82aac34e1141 350 14 light snow showers
kohacraft 0:82aac34e1141 351 15 blowing snow
kohacraft 0:82aac34e1141 352 16 snow
kohacraft 0:82aac34e1141 353 17 hail
kohacraft 0:82aac34e1141 354 18 sleet
kohacraft 0:82aac34e1141 355 19 dust
kohacraft 0:82aac34e1141 356 20 foggy
kohacraft 0:82aac34e1141 357 21 haze
kohacraft 0:82aac34e1141 358 22 smoky
kohacraft 0:82aac34e1141 359 23 blustery
kohacraft 0:82aac34e1141 360 24 windy
kohacraft 0:82aac34e1141 361 25 cold
kohacraft 0:82aac34e1141 362 26 cloudy
kohacraft 0:82aac34e1141 363 27 mostly cloudy (night)
kohacraft 0:82aac34e1141 364 28 mostly cloudy (day)
kohacraft 0:82aac34e1141 365 29 partly cloudy (night)
kohacraft 0:82aac34e1141 366 30 partly cloudy (day)
kohacraft 0:82aac34e1141 367 31 clear (night)
kohacraft 0:82aac34e1141 368 32 sunny
kohacraft 0:82aac34e1141 369 33 fair (night)
kohacraft 0:82aac34e1141 370 34 fair (day)
kohacraft 0:82aac34e1141 371 35 mixed rain and hail
kohacraft 0:82aac34e1141 372 36 hot
kohacraft 0:82aac34e1141 373 37 isolated thunderstorms
kohacraft 0:82aac34e1141 374 38 scattered thunderstorms
kohacraft 0:82aac34e1141 375 39 scattered thunderstorms
kohacraft 0:82aac34e1141 376 40 scattered showers
kohacraft 0:82aac34e1141 377 41 heavy snow
kohacraft 0:82aac34e1141 378 42 scattered snow showers
kohacraft 0:82aac34e1141 379 43 heavy snow
kohacraft 0:82aac34e1141 380 44 partly cloudy
kohacraft 0:82aac34e1141 381 45 thundershowers
kohacraft 0:82aac34e1141 382 46 snow showers
kohacraft 0:82aac34e1141 383 47 isolated thundershowers
kohacraft 0:82aac34e1141 384 */