在本教程中,我们将学习如何连接SSD1306 OLED显示器与ESP8266。这种特殊的OLED显示器是一个7针SPI类型。因此,我们将使用NodeMCU开发板来代替常规的ESP-01模块。我们将学习与ESP8266 NodeMCU接口OLED显示器所需的引脚,显示位图图像,并了解ESP8266 NodeMCU OLED显示器接口的工作原理。
如果你想用ESP32开发板连接OLED显示器,那么我做了一个专门的教程。检查出来。
简介
有机发光二极管(Organic Light Emitting Diode,简称OLED)是一种广泛应用于手机和电视的显示技术。OLED显示器能够在单个像素水平产生自己的背光。这与LCD显示器不同,LCD显示器需要一个单独的背光来照亮面板。
说到对比度,由于单个像素会发出自己的光,因此也可以关闭它来产生深黑色的图像。因此,OLED显示屏的对比度比普通LCD显示屏要好得多。
由于能耗较低(只有像素点被点亮才会产生电流),OLED显示屏在电池驱动的设备上也很受欢迎,比如智能手表、健康追踪器和其他可穿戴设备。
关于SSD1306 OLED显示屏的简写
对于DIY项目,市场上有一些OLED显示器,通常分辨率为128×64像素或128×32像素。此外,根据提供的通信接口,有两种OLED显示器。一种使用I2C和其他使用SPI。
在这个项目中,我们将使用一个SPI型OLED显示器,其分辨率为128×64像素,对角线测量为0.96”。该OLED显示屏基于SSD1306 OLED驱动芯片。
你必须注意SSD1306 OLED驱动IC可以配置为在I中通信2C接口或SPI接口。因此,相同的OLED面板和相同的OLED驱动IC可以产生两个设备:一个是4引脚I2C型,另一种是7针SPI型。
事实上,你甚至可以简单地通过焊接/解焊一些SMD电阻将一种类型修改为另一种类型。
识别ESP8266 NodeMCU的SPI引脚
如前所述,这种特殊的OLED是SPI类型。因此,我们必须在ESP8266中搜索和配置SPI引脚。由于ESP-01模块并没有扇出ESP8266EX SoC的所有引脚,所以我们将使用NodeMCU开发板。
如果你还记得ESP8266 NodeMCU Pinout教程,ESP8266有两个SPI接口:SPI和HSPI。但是SPI接口已经被ESP8266EX SoC用于连接ESP-12E模块中的SPI Flash芯片。
所以,我们只剩下HSPI接口。
看看ESP8266 NodeMCU的pinout图。HSPI引脚如下:
HSPI |
GPIO | NodeMCU |
HSPI_MISO | GPIO 12 | D6 |
HSPI_MOSI |
GPIO 13 | D7 |
HSPI_CLK | GPIO 14 | D5 |
HSPI_CS |
GPIO 15 | D8 |
ESP8266 NodeMCU OLED显示接口
既然我们已经确定了ESP8266 NodeMCU的SPI引脚,现在我们可以开始用ESP8266接口OLED显示器。但是如果你注意到SPI OLED显示器的引脚,除了SPI引脚还有两个引脚。
它们是RST(复位)和DC(数据/命令)引脚。由于这些引脚只是控制引脚,所以我们可以使用ESP8266 NodeMCU的任何GPIO引脚。由于GPIO 4 (D2)和GPIO 5 (D1)是空闲的,我们就用它们来做这个。
因此,ESP8266 NodeMCU和SPI OLED显示器之间的连接看起来像这样:
OLED显示器 |
ESP8266 NodeMCU |
接地 | 接地 |
VCC |
3.3 v |
D0 (sck / clk) | GPIO 14 (D5) |
D1(莫西人) |
GPIO 13 (D7) |
RES | GPIO 4 (D2) |
直流 |
GPIO 5 (D1) |
CS | GPIO 15 (D8) |
组件的要求
- ESP8266 NodeMCU开发板
- OLED显示器
- 电路试验板
- 连接电线
- 微型usb电缆
线路图
ESP8266 NodeMCU OLED显示接口电路图如下图所示。该电路是针对SPI OLED显示器设计的。
准备Arduino IDE
如果你使用OLED显示器(要么我2C或SPI类型),那么您可能已经下载了Arduino IDE所需的库。让我再带你过一遍这些步骤。
具体来说,您必须下载两个库。一个用于OLED驱动SSD1306,另一个用于显示一些基本图形。
通过选择工具->管理库,打开Arduino IDE和打开库管理器…
搜索“ssd1306”并安装“Adafruit ssd1306”库。从图中可以看到,我已经安装了它。
接下来,搜索“gfx”并安装“Adafruit gfx”库。在此之后,关闭库管理器。
请确保选中NodeMCU单板。如果没有,您可以在“Tools -> board -> ESP8266 Boards”中选择该单板,单击“NodeMCU 1.0 (ESP-12E Module)”。另外,选择正确的COM端口(如果您已经连接并将NodeMCU连接到计算机)。
我们现在准备在OLED显示屏上显示一些东西。
显示文本
首先,我们将编写一个小程序,它将显示一些基本的文本相关信息。这包括简单文本、倒置文本、滚动文本、ASCII字符和两种大小的字体。
代码
显示图形
接下来,我们将使用GFX库来显示一些基本形状,如矩形、填充矩形、圆矩形、填充圆矩形、圆、填充圆、三角形和填充三角形。
代码
显示位图图像
最后,为了演示SSD1306 OLED显示器的位图显示能力,让我们取一个小的位图图像并为该图像生成等价的字节码(使用GIMP或任何在线工具)。
我们必须在代码中插入这个字节代码,并使用“drawBitmap”函数在OLED显示器上显示图像。
代码
结论
一个简单的项目演示ESP8266 NodeMCU OLED显示接口。您学习了如何将ESP8266与SPI类型OLED显示器连接、下载必要的库文件、显示不同类型的文本文件、一些基本图形和位图图像。