esp8266+oled屏幕显示文字 和图片

1.用工具显示文字的矩阵(pctoLCD)


2.使用arduino编辑代码,代码如下

#include "SSD1306Wire.h"

const int I2C_ADDR = 0x3c;

#define SDA_PIN 4

#define SCL_PIN 5

static const uint8_t text[][60] = {

{0x00,0x00,0x00,0x00,0x10,0x00,0x48,0x10,0x00,0x48,0x10,0x02,0x48,0x08,0x02,0x44,0x08,0x06,0xFC,0xFF,0x03,0x44,0x04,0x02,0x46,0x04,0x01,0x44,0x80,0x00,0x40,0x80,0x00,0xFE,0x4F,0x00,0x40,0x78,0x00,0x40,0xD0,0x00,0x44,0x8C,0x01,0x48,0x06,0x03,0x58,0x02,0x02,0x60,0x00,0x06,0x00,0xC0,0x07,0x00,0x00,0x00},/*"我",0*/

{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x02,0x00,0x02,0x01,0x00,0xC2,0x00,0x02,0x7D,0x00,0xFE,0x4B,0x00,0x92,0x82,0x00,0x92,0x02,0x01,0x92,0x02,0x03,0x92,0xFC,0x03,0x92,0x22,0x02,0x92,0x22,0x02,0xFE,0x23,0x06,0xFE,0x22,0x06,0x00,0x22,0x06,0x00,0x22,0x06,0x00,0x02,0x06,0x00,0x00,0x02,0x00,0x00,0x00},/*"是",1*/

{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0xC0,0x00,0x00,0xF0,0xFF,0x07,0x0E,0x00,0x04,0x00,0x00,0x04,0x00,0x88,0x04,0xF8,0x45,0x04,0x88,0x22,0x02,0x18,0x3B,0x02,0xEE,0x4C,0x01,0xA8,0x88,0x01,0x28,0xC9,0x01,0xD0,0x31,0x02,0x88,0x1A,0x02,0xF8,0x07,0x06,0x08,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*"傻",2*/

{0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x80,0x00,0x84,0x40,0x00,0x98,0x7F,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x02,0x01,0x01,0x02,0xFE,0x01,0xFA,0x49,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x4A,0x7E,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x7A,0x49,0x02,0x02,0xFF,0x02,0x02,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00},/*"逼",3*/

};

SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);

void setup() {

  Serial.begin(115200);

  oled.init();

  oled.flipScreenVertically();

  oled.setContrast(255);

  drawRect();

  oled.clear();

  oled.display();

}

void loop() {

  oled.setFont(ArialMT_Plain_24);

  oled.drawString(0, 0, "HelloWorld!");

  oled.display();

  delay(1000);

  oled.clear();

  oled.display();

  for (int i = 0; i < 4; i++) {

    oled.drawFastImage(4 + 20 * i, 22, 20, 20, text[i]);  //这行代码就是最核心的

  }

  oled.display();

  while (1) {

    digitalWrite(LED_BUILTIN, LOW);

    delay(300);

    digitalWrite(LED_BUILTIN, HIGH);

    delay(500);

  }

}

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);

  }

}

3.显示图片

#include "SSD1306Wire.h"

const int I2C_ADDR = 0x3c;

#define SDA_PIN 4

#define SCL_PIN 5

static const uint8_t text[][60] = {

{0x00,0x00,0x00,0x00,0x10,0x00,0x48,0x10,0x00,0x48,0x10,0x02,0x48,0x08,0x02,0x44,0x08,0x06,0xFC,0xFF,0x03,0x44,0x04,0x02,0x46,0x04,0x01,0x44,0x80,0x00,0x40,0x80,0x00,0xFE,0x4F,0x00,0x40,0x78,0x00,0x40,0xD0,0x00,0x44,0x8C,0x01,0x48,0x06,0x03,0x58,0x02,0x02,0x60,0x00,0x06,0x00,0xC0,0x07,0x00,0x00,0x00},/*"我",0*/

{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x02,0x00,0x02,0x01,0x00,0xC2,0x00,0x02,0x7D,0x00,0xFE,0x4B,0x00,0x92,0x82,0x00,0x92,0x02,0x01,0x92,0x02,0x03,0x92,0xFC,0x03,0x92,0x22,0x02,0x92,0x22,0x02,0xFE,0x23,0x06,0xFE,0x22,0x06,0x00,0x22,0x06,0x00,0x22,0x06,0x00,0x02,0x06,0x00,0x00,0x02,0x00,0x00,0x00},/*"是",1*/

{0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0xC0,0x00,0x00,0xF0,0xFF,0x07,0x0E,0x00,0x04,0x00,0x00,0x04,0x00,0x88,0x04,0xF8,0x45,0x04,0x88,0x22,0x02,0x18,0x3B,0x02,0xEE,0x4C,0x01,0xA8,0x88,0x01,0x28,0xC9,0x01,0xD0,0x31,0x02,0x88,0x1A,0x02,0xF8,0x07,0x06,0x08,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00},/*"傻",2*/

{0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x80,0x00,0x84,0x40,0x00,0x98,0x7F,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x02,0x01,0x01,0x02,0xFE,0x01,0xFA,0x49,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x4A,0x7E,0x02,0x4A,0x49,0x02,0x4A,0x49,0x02,0x7A,0x49,0x02,0x02,0xFF,0x02,0x02,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x00},/*"逼",3*/

};

const uint8_t image[] PROGMEM = {

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xC3,0x7F,0x00,0x00,

0x00,0x00,0x80,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x10,0xE0,0xFF,0xFF,0x7F,0x08,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x3F,0x3C,0x00,

0x00,0xE0,0xFF,0xFF,0xFF,0x3F,0x7C,0x00,0x00,0xC0,0xFF,0x8F,0xFF,0x3F,0xFC,0x00,0x00,0x80,0xFF,0xE3,0xFF,0x3F,0xFE,0x01,

0x00,0x00,0xFE,0xFC,0xFF,0x3F,0xFE,0x03,0x00,0x80,0x7F,0xFE,0xFF,0x00,0xFF,0x07,0x06,0xF0,0x9F,0xFF,0x0F,0x00,0xFF,0x0F,

0xFC,0xFF,0xCF,0xFF,0x07,0x00,0xFC,0x0F,0xF0,0xFF,0xE3,0xFF,0x01,0x00,0xF8,0x1F,0xC0,0xFF,0xF0,0xFF,0x00,0x00,0xE0,0x3F,

0x00,0x0E,0xF8,0x7F,0x00,0x0F,0xE0,0x3F,0x00,0x00,0xFE,0x7F,0xC0,0x7F,0xC0,0x3F,0x00,0x00,0xFF,0x3F,0xE0,0xFF,0x80,0x7F,

0x00,0xC0,0x7F,0x1F,0xF0,0xFF,0x81,0x7F,0x00,0xF0,0x1F,0x1F,0xF8,0xFF,0x83,0x7F,0xF0,0xFF,0x8F,0x0F,0xF8,0xFF,0x83,0x7F,

0xE0,0xFF,0x83,0x07,0xF8,0xFF,0x83,0x7F,0x80,0xFF,0x80,0x03,0xFC,0xFF,0x03,0xFF,0x00,0x00,0x80,0x01,0xFC,0xFF,0x03,0xFF,

0x00,0x00,0xC0,0x00,0xF8,0xFF,0x03,0xFF,0x00,0x00,0x20,0x10,0xF8,0xFF,0x83,0xFF,0x00,0x00,0x00,0x10,0xF8,0xFF,0x83,0x7F,

0x00,0x00,0x00,0x38,0xF0,0xFF,0x81,0x7F,0x00,0x00,0x00,0x3C,0xF0,0xFF,0x80,0x7F,0x00,0x00,0x00,0x3E,0xE0,0x7F,0xC0,0x7F,

0x00,0x00,0x00,0x7F,0x80,0x3F,0xE0,0x3F,0x00,0x00,0x80,0xFF,0x00,0x00,0xE0,0x3F,0x00,0x00,0x80,0xFF,0x01,0x00,0xE0,0x3F,

0x00,0x00,0x00,0xFF,0x03,0x00,0x88,0x1F,0x00,0x00,0x00,0xFE,0x03,0x00,0x1E,0x0F,0x00,0x00,0x00,0xFE,0x19,0x80,0x3F,0x0E,

0x00,0x00,0x00,0xFC,0x78,0xF0,0x7F,0x04,0x00,0x00,0x00,0x78,0xFC,0xFF,0xFF,0x00,0x00,0x00,0x00,0x38,0xFE,0xFF,0xFF,0x01,

0x00,0x00,0x00,0x30,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x7F,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x1F,0x00,

0x00,0x00,0x00,0x00,0xFE,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"Sixlab_Logo.bmp",0*/


 

};

SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);

void setup() {

  Serial.begin(115200);

  oled.init();

  oled.flipScreenVertically();

  oled.setContrast(255);

  drawRect();

  oled.clear();

  oled.display();

}

void loop() {

  oled.setFont(ArialMT_Plain_24);

  oled.drawString(0, 0, "HelloWorld!");

  oled.display();

  delay(1000);

  oled.clear();

  oled.display();

  for (int i = 0; i < 4; i++) {

    oled.drawFastImage(8 + 20 * i, 22, 20, 20, text[i]);

  }

  oled.display();

  delay(500);

  oled.clear();

 oled.drawFastImage(32, 0, 64, 64, image);

  oled.display();

  delay(1300);

  oled.clear(); oled.display();         // 清除屏幕

  /* 4. LED状态取反 */

  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));

}

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);

  }

}

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您的问题是将如何使用ESP01S模块、OLED显示屏和DHT11温湿度传感器进行连接和显示。以下是一些基本步骤: 1. 将ESP01S模块与OLED显示屏连接,可以通过GPIO2和GPIO0引脚连接。 2. 将DHT11温湿度传感器连接到ESP01S模块的GPIO引脚,可以使用任何可用的GPIO引脚。 3. 在ESP01S上运行一个基本的程序,以读取DHT11传感器的数据,并将其显示OLED屏幕上。 4. 确保您已经正确安装了Arduino IDE和ESP8266板支持,以便能够编写和上传代码到ESP01S。 5. 编写代码来读取DHT11传感器的数据,使用Adafruit_Sensor库和DHT库。 6. 编写代码来显示温湿度数据在OLED屏幕上,使用Adafruit_SSD1306库。 7. 上传代码到ESP01S,并在串口监视器中查看温湿度数据,同时在OLED屏幕显示数据。 请注意,这只是一个简单的示例,您可能需要进行一些额外的配置和调试,以确保所有组件都能够正常工作。 ### 回答2: ESP01S是一款非常小巧的无线模块,它具有连接WiFi网络的能力。而OLED则是一种显示屏,能够显示出图像和文字。DHT11则是一种温湿度传感器。所以,ESP01S OLED显示DHT11的意思是,将ESP01S模块用于连接WiFi网络,并通过OLED显示屏来显示DHT11传感器测量到的温度和湿度数据。 实现这个功能的过程大致如下: 1. 首先,连接ESP01S模块和OLED显示屏。将它们通过串行总线连接在一起,并确保连接正确。 2. 然后,编写代码以实现ESP01S的WiFi连接功能,并在连接成功后将其配置为客户端模式,以便从网络中获取温湿度数据。 3. 接下来,编写代码以读取DHT11传感器的数据,并将其保存在适当的变量中。 4. 最后,将读取到的温湿度数据显示OLED屏幕上。这可以使用OLED显示屏的相应库函数来实现。 通过将ESP01S和OLED显示屏结合起来,我们可以使DHT11的温湿度数据无线地显示OLED屏幕上。这样,我们就可以方便地监测环境的温度和湿度,而无需直接访问DHT11传感器。这对于一些需要远程监测环境条件的应用来说非常有用,比如温室自动化控制系统等。 ### 回答3: ESP01S是一款非常小巧的WiFi模块,而OLED显示屏是一种可以显示文字图片的设备。而DHT11是一款常见的温湿度传感器。所以,在ESP01S上连接一个OLED显示屏,然后读取DHT11传感器数据并在屏幕显示出来的方案是完全可行的。 首先,首先将ESP01S和OLED显示屏连接起来。一般而言,ESP01S有几个GPIO引脚可以用于与其他设备通信,我们可以使用其中的两个引脚连接到OLED的SDA(数据)和SCL(时钟)引脚。接下来,我们需要使用相应的库和代码来控制OLED显示屏,在ESP01S上显示我们想要的内容。 然后,将DHT11传感器连接到ESP01S的另外两个GPIO引脚。我们需要使用相应的库和代码来读取DHT11传感器的数据。一旦我们成功获取到温湿度数据,我们可以将其存储在变量中。 最后,我们可以将从DHT11传感器得到的温湿度数据通过串口或者其他方式发送到ESP01S,然后在OLED显示屏上显示出来。我们可以使用OLED库的函数来将温湿度数据以合适的格式显示屏幕上,比如温度和湿度分别显示在不同的区域,或者直接显示在一行。 通过这种方式,我们可以实现在ESP01S上连接一个OLED显示屏并且显示DHT11传感器的温湿度数据。这样,我们可以方便地监测当前的温湿度,并且通过显示屏来直观地显示出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值