0.96 OLED

Arduino 安装库 ESP8266 and ESP32 Oled Driver for SSD1306 display

代码例子:

// 0.96OLED
#include <Wire.h>              
#include "SSD1306Wire.h"   
//OLED定义 ADDRESS, SDA, SCL
SSD1306Wire display(0x3c, 4, 5); 


void setup() {
  //波特率设置
  Serial.begin(115200);
  //OLED初始化
  Serial.println();
  display.init();
  display.flipScreenVertically();
  //设置字体
  display.setFont(ArialMT_Plain_10); 

}

void loop() {
  display.clear();
  //随便设置两个变量
  float h = 33;
  float t = 22;

  //设置字体
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_16);
  display.drawString(0, 0, "Humi:"+ String(h) + "%");
  display.drawString(0, 20,"Temp:"+ String(t) + "°C");


  display.setFont(ArialMT_Plain_10);
  display.setTextAlignment(TEXT_ALIGN_RIGHT);
  display.drawString(128, 54, String(millis()));
  // write the buffer to the display
  display.display();
  delay(10);

}

OLED 中文显示

安装库 u8g2

代码例子


//U8g2
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE, /* clock=*/5, /* data=*/4); 


void setup() {
  //波特率设置
  Serial.begin(115200);
  u8g2.begin();
  u8g2.enableUTF8Print(); 
  u8g2.setFont(u8g2_font_wqy12_t_gb2312); //此处建议用gb2312字库,完整支持所有中文编码
  u8g2.setCursor(0, 15);
  u8g2.print("正在搜星........."); 
  u8g2.sendBuffer();

}

void loop() {
    u8g2.clearDisplay(); // 清除显示数据及屏幕
    u8g2.setCursor(0, 12);
    u8g2.print("维度:");
    u8g2.println(30.644252, 6); 
    u8g2.setCursor(0, 24);
    u8g2.print("经度:");
    u8g2.println(104.042245, 6);    
    u8g2.setCursor(0, 36);    
    u8g2.print("日期:");
    u8g2.print("2024-05-24");    
    u8g2.setCursor(0, 48);   
    u8g2.print("时间:");
    u8g2.println("18:06:25");
    u8g2.setCursor(0, 60);  
    u8g2.print("卫星:");
    u8g2.println("6");
    u8g2.print("速度:");
    u8g2.println("20km/h");
    u8g2.sendBuffer();
    delay(100);

}