基于esp8266网络气象时钟(二)

该博客详细介绍了如何使用ESP8266模块结合和风天气API,创建一款能够显示实时天气信息和时间的桌面时钟。通过编写HeFeng.cpp和HeFeng.h程序,结合WeatherStationFonts.h和WeatherStationImages.h来处理天气图标,实现天气预报功能。
摘要由CSDN通过智能技术生成

和风天气( HeFeng)

程序(HeFeng.cpp)

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>  
#include <WiFiClientSecureBearSSL.h>  
#include "HeFeng.h"


HeFeng::HeFeng() {

}




void HeFeng::doUpdateCurr(HeFengCurrentData *data, String key,String location) {

    std::unique_ptr<BearSSL::WiFiClientSecure>client(new BearSSL::WiFiClientSecure);    
    client->setInsecure();    
    HTTPClient https;  
    String url="https://free-api.heweather.net/s6/weather/now?lang=en&location="+location+"&key="+key;
  Serial.print("[HTTPS] begin...\n");  
    if (https.begin(*client, url)) {  // HTTPS    
      // start connection and send HTTP header  
      int httpCode = https.GET();    
      // httpCode will be negative on error  
      if (httpCode > 0) {  
        // HTTP header has been send and Server response header has been handled  
        Serial.printf("[HTTPS] GET... code: %d\n", httpCode);    
     
        if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {  
          String payload = https.getString();  
          Serial.println(payload);  
          DynamicJsonDocument  jsonBuffer(2048);
          deserializeJson(jsonBuffer, payload);
          JsonObject root = jsonBuffer.as<JsonObject>();
          
         String tmp=root["HeWeather6"][0]["now"]["tmp"];         
         data->tmp=tmp;             
         String fl=root["HeWeather6"][0]["now"]["fl"];         
         data->fl=fl;
         String hum=root["HeWeather6"][0]["now"]["hum"];         
         data->hum=hum;
         String wind_sc=root["HeWeather6"][0]["now"]["wind_sc"];         
         data->wind_sc=wind_sc;
         String cond_code=root["HeWeather6"][0]["now"]["cond_code"];  
         String meteoconIcon=getMeteoconIcon(cond_code);
         String cond_txt=root["HeWeather6"][0]["now"]["cond_txt"];
         data->cond_txt=cond_txt;
         data->iconMeteoCon=meteoconIcon;
         
        }  
      } else {  
        Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str());
         data->tmp="-1";                 
         data->fl="-1";       
         data->hum="-1";      
         data->wind_sc="-1";         
         data->cond_txt="no network";
         data->iconMeteoCon=")";
      }  
  
      https.end();  
    } else {  
      Serial.printf("[HTTPS] Unable to connect\n");
         data->tmp="-1";                 
         data->fl="-1";       
         data->hum="-1";      
         data->wind_sc="-1";         
         data->cond_txt="no network";
         data->iconMeteoCon=")";
    }  

}

void HeFeng::doUpdateFore(HeFengForeData *data, String key,String location) {

    std::unique_ptr<BearSSL::WiFiClientSecure>client(new BearSSL::WiFiClientSecure);    
    client->setInsecure();    
    HTTPClient https;  
    String url="https://free-api.heweather.net/s6/weather/forecast?lang=en&location="+location+"&key="+key;
  Serial.print("[HTTPS] begin...\n");  
    if (https.begin(*client, url)) {  // HTTPS    
      // start connection and send HTTP header  
      int httpCode = https.GET();    
      // httpCode will be negative on error  
      if (httpCode > 0) {  
        // HTTP header has been send and Server response header has been handled  
        Serial.printf("[HTTPS] GET... code: %d\n", httpCode);    
     
        if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {  
          String payload = https.getString();  
          Serial.println(payload);  
          DynamicJsonDocument  jsonBuffer(8192);
          deserializeJson(jsonBuffer, payload);
          JsonObject root = jsonBuffer.as<JsonObject>();
        int i;
           for (i=0; i<3; i++){
         String tmp_min=root["HeWeather6"][0]["daily_forecast"][i]["tmp_min"];         
         data[i].tmp_min=tmp_min;             
         String tmp_max=root["HeWeather6"][0]["daily_forecast"][i]["tmp_max"];         
         data[i].tmp_max=tmp_max;  
          String datestr=root["HeWeather6"][0]["daily_forecast"][i]["date"];         
         data[i].datestr=datestr.substring(5,datestr.length()); 
         String cond_code=root["HeWeather6"][0]["daily_forecast"][i]["cond_code_d"];  
         String meteoconIcon=getMeteoconIcon(cond_code);        
         data[i].iconMeteoCon=meteoconIcon;
           }
        }  
      } else {  
        Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str());  
          int i;
           for (i=0; i<3; i++){               
         data[i].tmp_min="-1";          
         data[i].tmp_max="-1";    
         data[i].datestr="N/A";
         data[i].iconMeteoCon=")";
           }
      }  
  
      https.end();  
    } else {  
      Serial.printf("[HTTPS] Unable to connect\n");  
        int i;
           for (i=0; i<3; i++){               
         data[i].tmp_min="-1";          
         data[i].tmp_max="-1";    
         data[i].datestr="N/A";
         data[i].iconMeteoCon=")";
           }
    }  

}

   String HeFeng::getMeteoconIcon(String cond_code){
    if(cond_code=="100"||cond_code=="9006"){return "B";}
    if(cond_code=="999"){return ")";}
    if(cond_code=="104"){return "D";}
     if(cond_code=="500"){return "E";}
      if(cond_code=="503"||cond_code=="504"||cond_code=="507"||cond_code=="508"){return "F";}
       if(cond_code=="499"||cond_code=="901"){return "G";}
        if(cond_code=="103"){return "H";}
         if(cond_code=="502"||cond_code=="511"||cond_code=="512"||cond_code=="513"){return "L";}
          if(cond_code=="501"||cond_code=="509"||cond_code=="510"||cond_code=="514"||cond_code=="515"){return "M";}
           if(cond_code=="102"){return "N";}
            if(cond_code=="213"){return "O";}
               if(cond_code=="302"||cond_code=="303"){return "P";}
                  if(cond_code=="305"||cond_code=="308"||cond_code=="309"||cond_code=="314"||cond_code=="399"){return "Q";}
                         if(cond_code=="306"||cond_code=="307"||cond_code=="310"||cond_code=="311"||cond_code=="312"||cond_code=="315"||cond_code=="316"||cond_code=="317"||cond_code=="318"){return "R";}
                         if(cond_code=="200"||cond_code=="201"||cond_code=="202"||cond_code=="203"||cond_code=="204"||cond_code=="205"||cond_code=="206"||cond_code=="207"||cond_code=="208"||cond_code=="209"||cond_code=="210"||cond_code=="211"||cond_code=="212"){return "S";}
                             if(cond_code=="300"||cond_code=="301"){return "T";}
                                 if(cond_code=="400"||cond_code=="408"){return "U";}
                           if(cond_code=="407"){return "V";}
                                if(cond_code=="401"||cond_code=="402"||cond_code=="403"||cond_code=="409"||cond_code=="410"){return "W";}
                                     if(cond_code=="304"||cond_code=="313"||cond_code=="404"||cond_code=="405"||cond_code=="406"){return "X";}
                              if(cond_code=="101"){return "Y";}
    return ")";   
    }    
 
程序(HeFeng.h)

#pragma once
#include <ArduinoJson.h>

typedef struct HeFengCurrentData {

  String cond_txt;
  String fl;
  String tmp;
  String hum;
  String wind_sc;
  String iconMeteoCon;
  
} HeFengCurrentData;
typedef struct HeFengForeData {
  String datestr;
  String tmp_min;
  String tmp_max;
  String iconMeteoCon;
  
} HeFengForeData;
class HeFeng {
  private:
     String getMeteoconIcon(String cond_code);   
  public:
    HeFeng();
    void doUpdateCurr(HeFengCurrentData *data, String key,String location);
    void doUpdateFore(HeFengForeData *data, String key,String location);
  
};

天气图标

程序(WeatherStationFonts.h)
const uint8_t Meteocons_Plain_36[] PROGMEM = {
	0x25, // Width: 37
	0x26, // Height: 38
	0x20, // First Char: 32
	0xE0, // Numbers of Chars: 224

	// Jump Table:
	0xFF, 0xFF, 0x00, 0x24,  // 32:65535
	0x00, 0x00, 0xB6, 0x25,  // 33:0
	0x00, 0xB6, 0xB1, 0x24,  // 34:182
	0x01, 0x67, 0xB1, 0x24,  // 35:359
	0x02, 0x18, 0xB1, 0x24,  // 36:536
	0x02, 0xC9, 0xB3, 0x24,  // 37:713
	0x03, 0x7C, 0xB2, 0x24,  // 38:892
	0x04, 0x2E, 0x73, 0x24,  // 39:1070
	0x04, 0xA1, 0xB2, 0x24,  // 40:1185
	0x05, 0x53, 0x9F, 0x24,  // 41:1363
	0x05, 0xF2, 0x80, 0x24,  // 42:1522
	0x06, 0x72, 0x7F, 0x24,  // 43:1650
	0xFF, 0xFF, 0x00, 0x24,  // 44:65535
	0xFF, 0xFF, 0x00, 0x24,  // 45:65535
	0xFF, 0xFF, 0x00, 0x24,  // 46:65535
	0xFF, 0xFF, 0x00, 0x24,  // 47:65535
	0x06, 0xF1, 0xB2, 0x25,  // 48:1777
	0x07, 0xA3, 0xA3, 0x24,  // 49:1955
	0x08, 0x46, 0x80, 0x24,  // 50:2118
	0x08, 0xC6, 0xB3, 0x24,  // 51:2246
	0x09, 0x79, 0xB3, 0x24,  // 52:2425
	0x0A, 0x2C, 0xB2, 0x24,  // 53:2604
	0x0A, 0xDE, 0xB1, 0x24,  // 54:2782
	0x0B, 0x8F, 0xB2, 0x24,  // 55:2959
	0x0C, 0x41, 0xB1, 0x25,  // 56:3137
	0x0C, 0xF2, 0xB2, 0x24,  // 57:3314
	0xFF, 0xFF, 0x00, 0x24,  // 58:65535
	0xFF, 0xFF, 0x00, 0x24,  // 59:65535
	0xFF, 0xFF, 0x00, 0x24,  // 60:65535
	0xFF, 0xFF, 0x00, 0x24,  // 61:65535
	0xFF, 0xFF, 0x00, 0x24,  // 62:65535
	0xFF, 0xFF, 0x00, 0x24,  // 63:65535
	0xFF, 0xFF, 0x00, 0x24,  // 64:65535
	0x0D, 0xA4, 0x8E, 0x24,  // 65:3492
	0x0E, 0x32, 0xA3, 0x24,  // 66:3634
	0x0E, 0xD5, 0x85, 0x24,  // 67:3797
	0x0F, 0x5A, 0x99, 0x24,  // 68:3930
	0x0F, 0xF3, 0xB2, 0x24,  // 69:4083
	0x10, 0xA5, 0xA8, 0x24,  // 70:4261
	0x11, 0x4D, 0x90, 0x24,  // 71:4429
	0x11, 0xDD, 0xB3, 0x24,  // 72:4573
	0x12, 0x90, 0xB3, 0x24,  // 73:4752
	0x13, 0x43, 0xA5, 0x24,  // 74:4931
	0x13, 0xE8, 0xA5, 0x24,  // 75:5096
	0x14, 0x8D, 0xB4, 0x25,  // 76:5261
	0x15, 0x41, 0x90, 0x24,  // 77:5441
	0x15, 0xD1, 0xB2, 0x24,  // 78:5585
	0x16, 0x83, 0xB1, 0x24,  // 79:5763
	0x17, 0x34, 0xB1, 0x24,  // 80:5940
	0x17, 0xE5, 0xB2, 0x24,  // 81:6117
	0x18, 0x97, 0xB2, 0x25,  // 82:6295
	0x19, 0x49, 0xB2, 0x24,  // 83:6473
	0x19, 0xFB, 0xB6, 0x25,  // 84:6651
	0x1A, 0xB1, 0xB1, 0x24,  // 85:6833
	0x1B, 0x62, 0xB1, 0x24,  // 86:7010
	0x1C, 0x13, 0xB2, 0x24,  // 87:7187
	0x1C, 0xC5, 0xB1, 0x24,  // 88:7365
	0x1D, 0x76, 0xB3, 0x25,  // 89:7542
	0x1E, 0x29, 0xB2, 0x25,  // 90:7721
	0xFF, 0xFF, 0x00, 0x24,  // 91:65535
	0xFF, 0xFF, 0x00, 0x24,  // 92:65535
	0xFF, 0xFF, 0x00, 0x24,  // 93:65535
	0xFF, 0xFF, 0x00, 0x24,  // 94:65535
	0xFF, 0xFF, 0x00, 0x24,  // 95:65535
	0xFF, 0xFF, 0x00, 0x24,  // 96:65535
	0xFF, 0xFF, 0x00, 0x24,  // 97:65535
	0xFF, 0xFF, 0x00, 0x24,  // 98:65535
	0xFF, 0xFF, 0x00, 0x24,  // 99:65535
	0xFF, 0xFF, 0x00, 0x24,  // 100:65535
	0xFF, 0xFF, 0x00, 0x24,  // 101:65535
	0xFF, 0xFF, 0x00, 0x24,  // 102:65535
	0xFF, 0xFF, 0x00, 0x24,  // 103:65535
	0xFF, 0xFF, 0x00, 0x24,  // 104:65535
	0xFF, 0xFF, 0x00, 0x24,  // 105:65535
	0xFF, 0xFF, 0x00, 0x24,  // 106:65535
	0xFF, 0xFF, 0x00, 0x24,  // 107:65535
	0xFF, 0xFF, 0x00, 0x24,  // 108:65535
	0xFF, 0xFF, 0x00, 0x24,  // 109:65535
	0xFF, 0xFF, 0x00, 0x24,  // 110:65535
	0xFF, 0xFF, 0x00, 0x24,  // 111:65535
	0xFF, 0xFF, 0x00, 0x24,  // 112:65535
	0xFF, 0xFF, 0x00, 0x24,  // 113:65535
	0xFF, 0xFF, 0x00, 0x24,  // 114:65535
	0xFF, 0xFF, 0x00, 0x24,  // 115:65535
	0xFF, 0xFF, 0x00, 0x24,  // 116:65535
	0xFF, 0xFF, 0x00, 0x24,  // 117:65535
	0xFF, 0xFF, 0x00, 0x24,  // 118:65535
	0xFF, 0xFF, 0x00, 0x24,  // 119:65535
	0xFF, 0xFF, 0x00, 0x24,  // 120:65535
	0xFF, 0xFF, 0x00, 0x24,  // 121:65535
	0xFF, 0xFF, 0x00, 0x24,  // 122:65535
	0xFF, 0xFF, 0x00, 0x24,  // 123:65535
	0xFF, 0xFF, 0x00, 0x24,  // 124:65535
	0xFF, 0xFF, 0x00, 0x24,  // 125:65535
	0xFF, 0xFF, 0x00, 0x24,  // 126:65535
	0xFF, 0xFF, 0x00, 0x24,  // 127:65535
	0xFF, 0xFF, 0x00, 0x24,  // 128:65535
	0xFF, 0xFF, 0x00, 0x24,  // 129:65535
	0xFF, 0xFF, 0x00, 0x24,  // 130:65535
	0xFF, 0xFF, 0x00, 0x24,  // 131:65535
	0xFF, 0xFF, 0x00, 0x24,  // 132:65535
	0xFF, 0xFF, 0x00, 0x24,  // 133:65535
	0xFF, 0xFF, 0x00, 0x24,  // 134:65535
	0xFF, 0xFF, 0x00, 0x24,  // 135:65535
	0xFF, 0xFF, 0x00, 0x24,  // 136:65535
	0xFF, 0xFF, 0x00, 0x24,  // 137:65535
	0xFF, 0xFF, 0x00, 0x24,  // 138:65535
	0xFF, 0xFF, 0x00, 0x24,  // 139:65535
	0xFF, 0xFF, 0x00, 0x24,  // 140:65535
	0xFF, 0xFF, 0x00, 0x24,  // 141:65535
	0xFF, 0xFF, 0x00, 0x24,  // 142:65535
	0xFF, 0xFF, 0x00, 0x24,  // 143:65535
	0xFF, 0xFF, 0x00, 0x24,  // 144:65535
	0xFF, 0xFF, 0x00, 0x24,  // 145:65535
	0xFF, 0xFF, 0x00, 0x24,  // 146:65535
	0xFF, 0xFF, 0x00, 0x24,  // 147:65535
	0xFF, 0xFF, 0x00, 0x24,  // 148:65535
	0xFF, 0xFF, 0x00, 0x24,  // 149:65535
	0xFF, 0xFF, 0x00, 0x24,  // 150:65535
	0xFF, 0xFF, 0x00, 0x24,  // 151:65535
	0xFF, 0xFF, 0x00, 0x24,  // 152:65535
	0xFF, 0xFF, 0x00, 0x24,  // 153:65535
	0xFF, 0xFF, 0x00, 0x24,  // 154:65535
	0xFF, 0xFF, 0x00, 0x24,  // 155:65535
	0xFF, 0xFF, 0x00, 0x24,  // 156:65535
	0xFF, 0xFF, 0x00, 0x24,  // 157:65535
	0xFF, 0xFF, 0x00, 0x24,  // 158:65535
	0xFF, 0xFF, 0x00, 0x24,  // 159:65535
	0xFF, 0xFF, 0x00, 0x24,  // 160:65535
	0xFF, 0xFF, 0x00, 0x24,  // 161:65535
	0xFF, 0xFF, 0x00, 0x24,  // 162:65535
	0xFF, 0xFF, 0x00, 0x24,  // 163:65535
	0xFF, 0xFF, 0x00, 0x24,  // 164:65535
	0xFF, 0xFF, 0x00, 0x24,  // 165:65535
	0xFF, 0xFF, 0x00, 0x24,  // 166:65535
	0xFF, 0xFF, 0x00, 0x24,  // 167:65535
	0xFF, 0xFF, 0x00, 0x24,  // 168:65535
	0xFF, 0xFF, 0x00, 0x24,  // 169:65535
	0xFF, 0xFF, 0x00, 0x24,  // 170:65535
	0xFF, 0xFF, 0x00, 0x24,  // 171:65535
	0xFF, 0xFF, 0x00, 0x24,  // 172:65535
	0xFF, 0xFF, 0x00, 0x24,  // 173:65535
	0xFF, 0xFF, 0x00, 0x24,  // 174:65535
	0xFF, 0xFF, 0x00, 0x24,  // 175:65535
	0xFF, 0xFF, 0x00, 0x24,  // 176:65535
	0xFF, 0xFF, 0x00, 0x24,  // 177:65535
	0xFF, 0xFF, 0x00, 0x24,  // 178:65535
	0xFF, 0xFF, 0x00, 0x24,  // 179:65535
	0xFF, 0xFF, 0x00, 0x24,  // 180:65535
	0xFF, 0xFF, 0x00, 0x24,  // 181:65535
	0xFF, 0xFF, 0x00, 0x24,  // 182:65535
	0xFF, 0xFF, 0x00, 0x24,  // 183:65535
	0xFF, 0xFF, 0x00, 0x24,  // 184:65535
	0xFF, 0xFF, 0x00, 0x24,  // 185:65535
	0xFF, 0xFF, 0x00, 0x24,  // 186:65535
	0xFF, 0xFF, 0x00, 0x24,  // 187:65535
	0xFF, 0xFF, 0x00, 0x24,  // 188:65535
	0xFF, 0xFF, 0x00, 0x24,  // 189:65535
	0xFF, 0xFF, 0x00, 0x24,  // 190:65535
	0xFF, 0xFF, 0x00, 0x24,  // 191:65535
	0xFF, 0xFF, 0x00, 0x24,  // 192:65535
	0xFF, 0xFF, 0x00, 0x24,  // 193:65535
	0xFF, 0xFF, 0x00, 0x24,  // 194:65535
	0xFF, 0xFF, 0x00, 0x24,  // 195:65535
	0xFF, 0xFF, 0x00, 0x24,  // 196:65535
	0xFF, 0xFF, 0x00, 0x24,  // 197:65535
	0xFF, 0xFF, 0x00, 0x24,  // 198:65535
	0xFF, 0xFF, 0x00, 0x24,  // 199:65535
	0xFF, 0xFF, 0x00, 0x24,  // 200:65535
	0xFF, 0xFF, 0x00, 0x24,  // 201:65535
	0xFF, 0xFF, 0x00, 0x24,  // 202:65535
	0xFF, 0xFF, 0x00, 0x24,  // 203:65535
	0xFF, 0xFF, 0x00, 0x24,  // 204:65535
	0xFF, 0xFF, 0x00, 0x24,  // 205:65535
	0xFF, 0xFF, 0x00, 0x24,  // 206:65535
	0xFF, 0xFF, 0x00, 0x24,  // 207:65535
	0xFF, 0xFF, 0x00, 0x24,  // 208:65535
	0xFF, 0xFF, 0x00, 0x24,  // 209:65535
	0xFF, 0xFF, 0x00, 0x24,  // 210:65535
	0xFF, 0xFF, 0x00, 0x24,  // 211:65535
	0xFF, 0xFF, 0x00, 0x24,  // 212:65535
	0xFF, 0xFF, 0x00, 0x24,  // 213:65535
	0xFF, 0xFF, 0x00, 0x24,  // 214:65535
	0xFF, 0xFF, 0x00, 0x24,  // 215:65535
	0xFF, 0xFF, 0x00, 0x24,  // 216:65535
	0xFF, 0xFF, 0x00, 0x24,  // 217:65535
	0xFF, 0xFF, 0x00, 0x24,  // 218:65535
	0xFF, 0xFF, 0x00, 0x24,  // 219:65535
	0xFF, 0xFF, 0x00, 0x24,  // 220:65535
	0xFF, 0xFF, 0x00, 0x24,  // 221:65535
	0xFF, 0xFF, 0x00, 0x24,  // 222:65535
	0xFF, 0xFF, 0x00, 0x24,  // 223:65535
	0xFF, 0xFF, 0x00, 0x24,  // 224:65535
	0xFF, 0xFF, 0x00, 0x24,  // 225:65535
	0xFF, 0xFF, 0x00, 0x24,  // 226:65535
	0xFF, 0xFF, 0x00, 0x24,  // 227:65535
	0xFF, 0xFF, 0x00, 0x24,  // 228:65535
	0xFF, 0xFF, 0x00, 0x24,  // 229:65535
	0xFF, 0xFF, 0x00, 0x24,  // 230:65535
	0xFF, 0xFF, 0x00, 0x24,  // 231:65535
	0xFF, 0xFF, 0x00, 0x24,  // 232:65535
	0xFF, 0xFF, 0x00, 0x24,  // 233:65535
	0xFF, 0xFF, 0x00, 0x24,  // 234:65535
	0xFF, 0xFF, 0x00, 0x24,  // 235:65535
	0xFF, 0xFF, 0x00, 0x24,  // 236:65535
	0xFF, 0xFF, 0x00, 0x24,  // 237:65535
	0xFF, 0xFF, 0x00, 0x24,  // 238:65535
	0xFF, 0xFF, 0x00, 0x24,  // 239:65535
	0xFF, 0xFF, 0x00, 0x24,  // 240:65535
	0xFF, 0xFF, 0x00, 0x24,  // 241:65535
	0xFF, 0xFF, 0x00, 0x24,  // 242:65535
	0xFF, 0xFF, 0x00, 0x24,  // 243:65535
	0xFF, 0xFF, 0x00, 0x24,  // 244:65535
	0xFF, 0xFF, 0x00, 0x24,  // 245:65535
	0xFF, 0xFF, 0x00, 0x24,  // 246:65535
	0xFF, 0xFF, 0x00, 0x24,  // 247:65535
	0xFF, 0xFF, 0x00, 0x24,  // 248:65535
	0xFF, 0xFF, 0x00, 0x24,  // 249:65535
	0xFF, 0xFF, 0x00, 0x24,  // 250:65535
	0xFF, 0xFF, 0x00, 0x24,  // 251:65535
	0xFF, 0xFF, 0x00, 0x24,  // 252:65535
	0xFF, 0xFF, 0x00, 0x24,  // 253:65535
	0xFF, 0xFF, 0x00, 0x24,  // 254:65535
	0xFF, 0xFF, 0x00, 0x24,  // 255:65535

	// Font Data:
	0x00,0x80,0x19,0x00,0x00,0x00,0x80,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x30,0x18,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0xC0,0xFF,0x0F,0x38,0x00,0xC0,0xFF,0x0F,0x3E,0x00,0xE0,0xFF,0x0F,0x7F,0x00,0xF0,0xFF,0x1F,0x3E,0x00,0xF0,0xFF,0x1F,0x38,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x80,0x03,0xF0,0xFF,0x1F,0xC0,0x07,0xF0,0xFF,0x1F,0xF0,0x07,0xE0,0xFF,0x0F,0xC0,0x07,0xC0,0xFF,0x0F,0x80,0x03,0xC0,0xFF,0x0F,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x70,	// 33
	0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0xF0,0x03,0xFE,0xFF,0xFF,0xF0,0x03,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0xF0,0x03,0xFC,0xFF,0x7F,0xF0,0x03,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8,	// 34
	0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x08,0x00,0x80,0xFF,0x0F,0x0B,0x00,0x80,0xFF,0x1F,0x3E,0x00,0xC0,0xFF,0x1F,0x32,0x00,0xC0,0xFF,0x9F,0x1F,0x00,0xC0,0xFF,0x3F,0x3C,0x00,0xC0,0xFF,0x1F,0x26,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0xF0,0x03,0xFE,0xFF,0xFF,0xF0,0x03,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0xF0,0x03,0xFC,0xFF,0x7F,0xF0,0x03,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x90,0x00,0xC0,0xFF,0x1F,0xF0,0x00,0xC0,0xFF,0x1F,0x7E,0x00,0xC0,0xFF,0x1F,0xC8,0x01,0x80,0xFF,0x1F,0xF8,0x00,0x80,0xFF,0x0F,0x2C,0x00,0x00,0xFF,0x07,0x60,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8,	// 35
	0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x1F,0x04,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0xC0,0xFF,0x3F,0x0F,0x00,0xC0,0xFF,0x1F,0x06,0x00,0xE0,0xFF,0x1F,0x00,0x0C,0xF0,0xFF,0x1F,0x00,0x1E,0xF8,0xFF,0x3F,0x00,0x1E,0xF8,0xFF,0x3F,0x00,0x1E,0xFC,0xF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沸腾石灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值