这里记录一下ESP8266 NodeMCU驱动0.96英寸的OLED屏的过程。
1. 硬件
- ESP8266-NodeMCU开发板
- 0.96英寸OLED屏模块 蓝色(4pin插针)
- 杜邦线
ESP8266-NodeMCU开发板和OLED引脚对应关系
开发板引脚 | OLED屏引脚 |
---|
3.3V | VCC | G (GND) | GND | D1(GPIO5) | SCL | D2(GPIO4) | SDA |
2. 开发
2.1. 在Arduino中安装依赖的库文件,【项目】→【加载库】→【管理库】:
搜索“SSD1306”,安装“Adafruit SSD1306”这个库 搜索“GFX”,安装“Adafruit GFX Library”这个库
2.2. 代码
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, -1);
void setup() {
Serial.begin(115200); //打开串口通讯,设置传输速率为115200字节每秒
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;);
}
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
}
int flag = 1;
void loop() {
// 3秒刷新显示内容
delay(3000);
// 清空显示
display.clearDisplay();
// 使更改的显示生效
display.display();
// 判断应该显示的内容
flag = flag % 4;
if (flag == 1) {
// 这段时间可以显示时间
display.setTextSize(1); // 设置字体大小(1~8)
display.setCursor(0, 0); // 设置坐标
display.print("Time:"); // 显示内容
display.setTextSize(2);
display.setCursor(0, 15);
display.print("2022-03-18 21:51:18");
} if (flag == 2) {
// 这段时间可以显示天气
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Weather: ");
display.setTextSize(2);
display.setCursor(0, 15);
display.print("Sunny ");
display.print(28.6);
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
} if (flag == 3) {
// 这段时间可以显示温度
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0, 15);
display.print(28.6);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
} else if (flag == 0) {
Serial.println("show humidity 4 \n");
// 这段时间可以显示湿度
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Humidity: ");
display.setTextSize(2);
display.setCursor(0, 15);
display.print(46);
display.print(" %");
}
flag++;
display.display();
}
转载请注明出处——胡玉洋 《ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)》
|