#include <ArduinoJson.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <OneButton.h>
unsigned char wea_pic[] U8X8_PROGMEM={0x00,0xF8,0x07,0x00,0x00,0xFF,0x3F,0x00,0xC0,0xFF,0xFF,0x00,0xE0,0xFF,0xFF,0x01,0xF0,0xFF,0xFF,0x03,0xF8,0xFF,0xFF,0x07,0xFC,0xFF,0xFF,0x0F,0xFC,0xFF,0xFF,0x0F,
0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,
0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x0F,0xFC,0xFF,0xFF,0x0F,
0xF8,0xFF,0xFF,0x07,0xF0,0xFF,0xFF,0x03,0xE0,0xFF,0xFF,0x01,0xC0,0xFF,0xFF,0x00,0x00,0xFF,0x3F,0x00,0x00,0xF8,0x07,0x00,//C:\Users\31859\Desktop\天气图和代码\[email protected]
/* (30 X 30 )*/};
unsigned char wea_pic00[] U8X8_PROGMEM =
{
0x00,0xF8,0x07,0x00,0x00,0xFF,0x3F,0x00,0xC0,0xFF,0xFF,0x00,0xE0,0xFF,0xFF,0x01,0xF0,0xFF,0xFF,0x03,0xF8,0xFF,0xFF,0x07,0xFC,0xFF,0xFF,0x0F,0xFC,0xFF,0xFF,0x0F,
0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,
0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0x3F,0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFE,0xFF,0xFF,0x1F,0xFC,0xFF,0xFF,0x0F,0xFC,0xFF,0xFF,0x0F,
0xF8,0xFF,0xFF,0x07,0xF0,0xFF,0xFF,0x03,0xE0,0xFF,0xFF,0x01,0xC0,0xFF,0xFF,0x00,0x00,0xFF,0x3F,0x00,0x00,0xF8,0x07,0x00,//C:\Users\31859\Desktop\天气图和代码\[email protected]
/* (30 X 30 )*/
};
const unsigned char tem_pic[] U8X8_PROGMEM = {
0x38,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0xEE,0x00,0xEE,0x01,0xCF,0x01,0xC7,0x01,0x87,0x01,0xC7,0x01,0xFF,0x01,0xFE,0x00,//C:\Users\31859\Desktop\5878bb5d5f2f7d49469f6be2d27617f7.bmp0
/* (9 X 16 )*/
};
const unsigned char loc_pic[] U8X8_PROGMEM={
0x78,0x00,0xFC,0x00,0xFE,0x01,0xCF,0x03,0x87,0x03,0x87,0x03,0xCF,0x03,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFC,0x00,0xFC,0x00,0x78,0x00,0x30,0x00,0x30,0x00,//C:\Users\31859\Desktop\c667d53acd899a97a85de0c201ba99be.bmp0
/* (10 X 15 )*/
};
const unsigned char week_0_pic[] U8X8_PROGMEM={
0xF0,0x0F,0xF0,0x0F,0xFC,0x3F,0x0C,0x30,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0x0F,0xF0,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0xF7,0x0C,0x30,0xFC,0x3F,0xF0,0x0F,0xF0,0x0F,//C:\Users\31859\Desktop\week_0.bmp0
/* (16 X 16 )*/
};
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);//该驱动是1.3寸的OLED屏幕。---------U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);这是比较常用的0.9寸的OLED显示器的驱动
char json[]=
"{\"results\":[{\"location\":{\"id\":\"WX4FBXXFKE4F\",\"name\":\"北京\",\"country\":\"CN\",\"path\":\"北京,北京,中国\",\"timezone\":\"Asia/Shanghai\",\"timezone_offset\":\"+08:00\"},\"now\":{\"text\":\"多云\",\"code\":\"4\",\"temperature\":\"14\"},\"last_update\":\"2023-03-28T11:24:25+08:00\"}]}";
//
void setup(void)
{
pinMode(18, INPUT_PULLUP);
pinMode(19, INPUT_PULLUP);
//
DynamicJsonDocument doc(1024);//分配动态内存
Serial.begin(115200);
Serial.println(sizeof(wea_pic00));
Serial.println(sizeof(wea_pic));
u8g2.begin();
}
// }
char date[]="12月30日";
void loop(void)
{
Serial.begin(115200);
u8g2.clearBuffer(); // 清除内部缓冲区
// /现在时间显示
u8g2.setFont( u8g2_font_logisoso28_tn ); //现在几点的大字体
u8g2.drawStr(-5,30,"10:10");//drawstr坐标为左下角
//////////////////////////////////////////// 日期显示
u8g2.setFont( u8g2_font_wqy14_t_chinese2 );
u8g2.drawUTF8(3,48,date);//坐标为左下角
//
///星期显示
u8g2.drawXBMP(5.5*(sizeof(date)/sizeof(date[0])),35,16,16,week_0_pic);
////////////////////////////年份显示
u8g2.setFont( u8g2_font_wqy12_t_chinese2); //
u8g2.drawUTF8(3,63,"2023年");
////////////////////////天气图标
u8g2.drawXBMP(90,0,30,30,wea_pic);//drawxbmp坐标为左上角
///////////////////////////////
///定位图标和城市显示
u8g2.drawXBMP(80,50,10,15,loc_pic);
u8g2.setFont( u8g2_font_wqy12_t_gb2312a);
u8g2.drawUTF8(97,63,"厦门");
///////////////////////////////
// 温度显示
u8g2.drawXBMP(80,32,9,16,tem_pic);
u8g2.setFont( u8g2_font_wqy12_t_gb2312a);
u8g2.drawStr(97,46,"15°C");
u8g2.sendBuffer(); // transfer internal memory to the displa
}
Loading
ssd1306
ssd1306