RISC-V技术论坛
直播中

大菠萝Alpha

3年用户 674经验值
擅长:嵌入式技术
私信 关注
[经验]

【DFRobot Beetle ESP32-C3开发板试用体验】基于DFRobot Beetle ESP32-C3的天气界面

一、软硬件环境
基于DFRobot Beetle ESP32-C3实现一个简易的天气界面
硬件平台:DFRobot Beetle ESP32-C3 + OLED屏幕(SSD1306)
软件环境:Anduino + U8G2库

二、系统接线
由于采用IIC接口,直接接好SDA和SDL及3.3V GND即可,线序如下图。
U2.png

三、程序实现
1.U8G2初始化
老生常谈,就直接begin()即可,aduino平台代码如下。
引用: void setup(void)
{
  Serial.begin(115200);
  u8g2.begin();  
  u8g2.enableUTF8Print();
  //LOG
  Serial.print("Init OK...");
}
2.图形界面绘制

图形界面绘制主要依托drawGlyph(),具体介绍如下:
引用: drawGlyph(x,y,addr) 绘制U8g2内置的图标
-x,y起点坐标
-addr内置图标的地址

U8g2库内置了需要预先定义的图形,通过drawGlyp函数以及指定的地址,即可看OLED上显示对应的图标。
各个图形的地址定义如下:

3CE.png
核心代码如下:
引用: void drawWeather(u8g2_uint_t x, u8g2_uint_t y, uint8_t symbol)
{
switch(symbol)
  {
    case SUN:
      u8g2.setFont(u8g2_font_open_iconic_weather_6x_t);
      u8g2.drawGlyph(x, y, 69);
      break;case RAIN:
u8g2.setFont(u8g2_font_open_iconic_weather_6x_t);
u8g2.drawGlyph(x, y, 67);
break;
    case SCLOUD:
      u8g2.setFont(u8g2_font_open_iconic_weather_6x_t);
      u8g2.drawGlyph(x, y, 65);
      break;
    case CLOUD:
      u8g2.setFont(u8g2_font_open_iconic_weather_6x_t);
      u8g2.drawGlyph(x, y, 64);
      break;
case THUNDER:
      u8g2.setFont(u8g2_font_open_iconic_embedded_6x_t);
      u8g2.drawGlyph(x, y, 67);
      break;      
  }
}
四、上机显示

DFT.jpg

#感谢观看#

WEATHER

更多回帖

发帖
×
20
完善资料,
赚取积分