ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)
Posted 胡玉洋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)相关的知识,希望对你有一定的参考价值。
这里记录一下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)》
以上是关于ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)的主要内容,如果未能解决你的问题,请参考以下文章
ESP8266 NodeMCU驱动OLED屏(SSD1306,4PIN,IIC)
[ESP8266系列] NodeMCU之在OLED上显示温湿度(lua编程)