网站建设方案预计效果,中国网站备案取消,电脑做服务器建网站,给彩票网站做排名违法吗飞书文档https://x509p6c8to.feishu.cn/docx/N45Pd0tA1oaC4CxUWZjc8Ekyn0b
屏幕应用场景 课程使用的SSD1306是一款128*64像素可以使用IIC驱动的OLED屏幕。 SSD1306 Oled显示模块共有4个引脚#xff0c;标记为GND, VCC, SCL和SDA。这种Oled显示模块可以使用3.3V到5V轻松上电。…飞书文档https://x509p6c8to.feishu.cn/docx/N45Pd0tA1oaC4CxUWZjc8Ekyn0b
屏幕应用场景 课程使用的SSD1306是一款128*64像素可以使用IIC驱动的OLED屏幕。 SSD1306 Oled显示模块共有4个引脚标记为GND, VCC, SCL和SDA。这种Oled显示模块可以使用3.3V到5V轻松上电。
u8g2是什么
u8g2是一套图形库工具库内部是提供了多种屏幕的驱动方案如SSD1306_128X64、UC1638_192X96等使用u8g2我们可以快速实现屏幕应用的开发。 u8g2开发流程
简单显示
首先先安装对应的u8g2库直接去PIO Home中搜导入就ok。 #include Arduino.h
#include U8g2lib.h
#include Wire.h#define SCL 22
#define SDA 23// IIC version 方向 时钟信号 数据信号 复位数据
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE);void setup(void)
{u8g2.begin();
}void loop(void)
{u8g2.clearBuffer();u8g2.setFont(u8g2_font_ncenB14_tr);u8g2.drawStr(0, 24, Hello World!);u8g2.sendBuffer();delay(1000);u8g2.clearBuffer();u8g2.setFont(u8g2_font_ncenB14_tr);u8g2.drawStr(0, 24, embeded!);u8g2.sendBuffer();delay(1000);
}
显示时间
#include Arduino.h
#include U8g2lib.h
#include Wire.h
#include WiFi.h
#include Ticker.h //调用Ticker.h库#define NTP1 ntp1.aliyun.com
#define NTP2 ntp2.aliyun.com
#define NTP3 ntp3.aliyun.com#define STASSID leo
#define STAPSK 123456789const char *ssid STASSID;
const char *password STAPSK;#define SCL 22
#define SDA 23Ticker timer1;// IIC version 方向 时钟信号 数据信号 复位数据
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE);const String WDAY_NAMES[] {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 星期void printLocalTime()
{struct tm timeInfo; // 声明一个结构体char buff[16];if (!getLocalTime(timeInfo)){Serial.println(Failed to obtain time);u8g2.setCursor(0, 9);u8g2.print(NTP time failure);return;}Serial.println(timeInfo, %F %T %a); // 格式化输出,串口显示String date WDAY_NAMES[timeInfo.tm_wday];u8g2.clearBuffer();sprintf_P(buff, PSTR(%04d-%02d-%02d %s), timeInfo.tm_year 1900, timeInfo.tm_mon 1, timeInfo.tm_mday, WDAY_NAMES[timeInfo.tm_wday].c_str());u8g2.setFont(u8g2_font_wqy14_t_gb2312a);u8g2.setCursor(9, 20); // 年份居中显示u8g2.println(buff); // 显示出年份// Serial.println(buff);sprintf_P(buff, PSTR(%02d:%02d:%02d), timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec); // 时间u8g2.setFont(u8g2_font_fur17_tn);u8g2.drawStr(19, 45, buff);u8g2.sendBuffer();
}void setup(void)
{Serial.begin(9600);u8g2.begin();WiFi.mode(WIFI_STA); // 设置ESP32工作模式为无线终端模式WiFi.begin(ssid, password);// Wait for connectionwhile (WiFi.status() ! WL_CONNECTED){delay(1000);Serial.print(wait connect to wifi...\n);}Serial.println(ssid);Serial.print(IP address: );Serial.println(WiFi.localIP());configTime(8 * 3600, 0, NTP1, NTP2, NTP3);u8g2.setPowerSave(0); // 关省电模式timer1.attach_ms(1000,printLocalTime);
}void loop(void)
{}
中文字符显示
下载库解压后放到本地电脑路径
C:\Users\kemp\.platformio\packages\framework-arduinoespressif32\libraries 在VSCode的工程配置文件中添加该库 C:/Users/kemp/.platformio/packages/framework-arduinoespressif32/libraries/u8g2_wqy/src,
#include Arduino.h
#include U8g2lib.h
#include u8g2_wqy.h#define SCL 22
#define SDA 23U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock*/SCL, /* data*/SDA, /* reset*/U8X8_PIN_NONE);void setup(void)
{u8g2.begin();u8g2.enableUTF8Print();
}
void loop(void)
{u8g2.setFont(u8g2_font_wqy12_t_gb2312); // 此处建议用gb2312字库完整支持所有中文编码u8g2.firstPage();do{u8g2.setCursor(0, 20);u8g2.print(小智学长);u8g2.setCursor(0, 40);u8g2.print(你好啊);} while (u8g2.nextPage());delay(1000);
}注意如果使用vscode写代码要把main.cpp文件用记事本打开另存为utf8格式否则会显示乱码