#include <Wire.h>
#include "SSD1306.h"
SSD1306 display(0x3c, 4, 5);
void setup() {
display.init();
display.setFont(ArialMT_Plain_24);
display.drawString(0, 0, "Hello World");
display.display();
}
void loop() {
display.init();
display.setFont(ArialMT_Plain_24); //16,10
display.drawString(0, 0, "Ni Hao");
display.display();
delay(1000);
display.init();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Hello world");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "Hello world");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 26, "Hello world");
display.display();
delay(1000);
}
https://github.com/ThingPulse/esp8266-oled-ssd1306
离线方式
arduino可以通过【项目】-【加载库】-【添加.zip库】-装指定离线库压缩包
参考资料: https://blog.csdn.net/qq_63523190/article/details/124785234
显示温湿度:
来源:
https://blog.csdn.net/weixin_44107116/article/details/122491820
#include "DHT.h"
/* 使用0.96寸的OLED屏幕需要使用包含这个头文件 */
#include "SSD1306Wire.h"
//dht11定义
#define DHTPIN 7 //数据引脚
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
/* 设置oled屏幕的相关信息 */ //有一些引脚接口不支持I2C
const int I2C_ADDR = 0x3c; // oled屏幕的I2c地址
#define SDA_PIN 4 // io4
#define SCL_PIN 5 // io5
/* 新建一个oled屏幕对象,需要输入IIC地址,SDA和SCL引脚号 */
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);
//测试屏幕显示
void drawRect(void) {
for (int16_t i=0; i<oled.getHeight()/2; i+=2) {
oled.drawRect(i, i, oled.getWidth()-2*i, oled.getHeight()-2*i);
oled.display();
delay(50);
}
}
void setup() {
Serial.begin(115200); //串口频率
dht.begin(); //dht11
// put your setup code here, to run once:
/* oled屏幕初始化 */
oled.init();
oled.flipScreenVertically(); // 设置屏幕翻转
oled.setContrast(255); // 设置屏幕亮度
drawRect(); // 测试屏幕显示
oled.clear(); oled.display(); // 清除屏幕
}
void loop() {
delay(5000);
float h = dht.readHumidity();
float t = dht.readTemperature();
// put your main code here, to run repeatedly:
/* 显示字母 */
oled.setFont(ArialMT_Plain_16); // 设置字体
oled.drawString(0,0, "Temp:" +String(t)+"C"); // 将要显示的字母写入缓存
oled.drawString(0,20, "Humidity:"+String(h)+"%"); // 将要显示的字母写入缓存
oled.display(); // 将缓存里的文字在屏幕上显示
delay(3000);
oled.clear();
oled.display(); // 清除屏幕
//可以让我们通过串口查看数据
Serial.print(F(" Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("*C \n "));
}