简介
ESP32通过I2C通信方式控制OLED,进行I2C通信的两个引脚SDA和SCL分别采用的17和16引脚。如对引脚使用有疑问,可参考文章ESP32外设管脚分配(I2C/I2S/UART等)
程序运行结果
Arduino示例程序
// Author: Nick
// Date:23 Sep,2021
//ESP32 Arduino驱动0.91" OLED
//NODEMCU-32 V1.2
//Arduino V1.8.16
//参考链接:
//该文章采用的是串口打印信息的方式进行显示:https://blog.csdn.net/Naisu_kun/article/details/115627629
#include <WiFi.h>
#include <HTTPClient.h>
#include <Wire.h>
// 引入驱动OLED0.91所需的库
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // 设置OLED宽度,单位:像素
#define SCREEN_HEIGHT 32 // 设置OLED高度,单位:像素
// 自定义重置引脚,虽然教程未使用,但却是Adafruit_SSD1306库文件所必需的
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
const char *ssid = "********"; //你的网络名称
const char *password = "********"; //你的网络密码
const char *ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 8 * 3600;
const int daylightOffset_sec = 0;
void printLocalTime()
{
struct tm timeinfo;
if (!getLocalTime(&timeinfo))
{
display.println("Failed to obtain time");
return;
}
display.println(&timeinfo, "%F"); // 格式化输出
display.println(&timeinfo, "%T"); // 格式化输出
display.println(&timeinfo, "%A"); // 格式化输出
}
void setup()
{
// put your setup code here, to run once:
//设置I2C的两个引脚SDA和SCL,这里用到的是17作为SDA,16作为SCL
Wire.setPins(/*SDA*/17,/*SCL*/16);
//初始化OLED并设置其IIC地址为 0x3C
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
//清除屏幕
display.clearDisplay();
//设置字体颜色,白色可见
display.setTextColor(WHITE);
//设置字体大小
display.setTextSize(1.5);
//设置光标位置
display.setCursor(0, 0);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
display.print(".");
}
display.println("WiFi connected!");
// 从网络时间服务器上获取并设置时间
// 获取成功后芯片会使用RTC时钟保持时间的更新
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime();
WiFi.disconnect(true);
WiFi.mode(WIFI_OFF);
display.println("WiFi disconnected!");
display.display();
}
void loop()
{
// put your main code here, to run repeatedly:、
delay(1000);
//清除屏幕
display.clearDisplay();
//设置光标位置
display.setCursor(0, 0);
printLocalTime();
display.display();
}
参考链接
该文章采用的是串口打印信息的方式进行显示:https://blog.csdn.net/Naisu_kun/article/details/115627629