esp8266驱动四脚oled显示文字和图片

#include "SSD1306Wire.h"

/* 设置oled屏幕的相关信息 */
const int I2C_ADDR = 0x3c;              // oled屏幕的I2c地址
#define SDA_PIN 4                       // SDA引脚,默认gpio4(D2)
#define SCL_PIN 5                       // SCL引脚,默认gpio5(D1)

/* 新建一个oled屏幕对象,需要输入IIC地址,SDA和SCL引脚号 */
SSD1306Wire oled(I2C_ADDR, SDA_PIN, SCL_PIN);

static const uint8_t text[][60] = 
{
{0x00,0x00,0xF8,0x0F,0x08,0x02,0x08,0x02,0xF8,0x03,0x40,0x00,0x60,0x3E,0x58,0x12,0x46,0x12,0x48,0x12,0x50,0x1E,0x20,0x02,0x40,0x00,0x00,0x00},/*"哈",0*/
{0x00,0x00,0x00,0x10,0x20,0x08,0x10,0x06,0x8E,0x01,0x08,0x00,0x08,0x20,0xE8,0x1F,0x08,0x00,0x08,0x01,0x28,0x02,0x18,0x0C,0x00,0x08,0x00,0x00},/*"尔",1*/
{0x00,0x00,0x20,0x04,0x44,0x3F,0xEC,0x00,0x10,0x04,0x08,0x24,0xE4,0x17,0xA4,0x0C,0x96,0x04,0x94,0x07,0x94,0x0C,0x94,0x14,0x0C,0x24,0x00,0x00},/*"滨",2*/
{0x00,0x00,0x00,0x00,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0xF8,0x1F,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x00,0x10,0x00,0x00},/*"工",3*/
{0x00,0x00,0x30,0x20,0xC0,0x20,0x00,0x27,0x00,0x20,0xFE,0x1F,0x00,0x20,0x00,0x20,0xFE,0x1F,0x00,0x22,0x80,0x21,0x60,0x20,0x00,0x10,0x00,0x00},/*"业",4*/
{0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x10,0x20,0x08,0x20,0x06,0xFE,0x01,0xA2,0x00,0x20,0x03,0x20,0x0C,0x20,0x10,0x10,0x30,0x10,0x20,0x00,0x00},/*"大",5*/
{0x00,0x00,0x40,0x00,0x20,0x02,0x14,0x02,0x5C,0x02,0x50,0x22,0x56,0x22,0x50,0x1F,0x50,0x03,0xDC,0x02,0x92,0x02,0x60,0x02,0x10,0x02,0x00,0x00},/*"学",6*/
};


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,0x80,0xFF,0x02,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x02,0x00,0x00,0x00,
0x00,0x00,0x20,0x80,0x02,0x06,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x0C,0x00,0x01,0x00,0x80,0x38,0x00,0x00,0x30,0x60,0x01,
0x00,0xC0,0x0E,0x40,0x02,0x60,0x0C,0x01,0x00,0xB0,0x03,0xFF,0x03,0xC0,0x02,0x01,0x00,0x18,0xC1,0x03,0x20,0x60,0x00,0x01,
0x00,0x08,0x70,0x00,0x00,0xE1,0x00,0x01,0x00,0x04,0x18,0x00,0x04,0x47,0x00,0x01,0x00,0x06,0x0E,0x00,0x00,0x0E,0x00,0x01,
0x00,0x03,0x07,0x80,0xFF,0x1C,0x00,0x01,0x00,0x81,0x03,0x80,0x00,0x38,0x00,0x01,0x00,0x87,0x01,0x80,0x00,0x70,0x00,0x01,
0x00,0xC6,0x00,0x80,0x00,0x60,0x00,0x01,0x00,0x62,0x00,0x00,0x01,0x40,0x00,0x01,0x00,0x63,0x00,0x00,0x00,0x41,0x0E,0x01,
0x00,0x31,0x00,0x00,0x00,0x00,0x04,0x05,0x00,0x31,0x00,0x00,0x00,0x01,0x04,0x07,0xE0,0x11,0x00,0x40,0x00,0x00,0x04,0x04,
0xE0,0x18,0x00,0x40,0xA1,0x00,0x0E,0x04,0x20,0x18,0x00,0x40,0xE0,0x00,0x00,0x04,0x20,0x18,0x00,0x12,0xE0,0x00,0x00,0x04,
0x20,0x18,0x40,0x12,0xE0,0x00,0x00,0x04,0x20,0x08,0x50,0x14,0xA0,0x00,0x0E,0x04,0x20,0x08,0x70,0x14,0xE0,0x00,0x0E,0x04,
0x20,0x08,0x40,0x12,0xE0,0x00,0x00,0x04,0x20,0x18,0x00,0x12,0xE2,0x00,0x00,0x04,0x20,0x18,0x00,0x10,0xE0,0x00,0x00,0x04,
0xE0,0x19,0x00,0x40,0xE1,0x00,0x00,0x04,0xA0,0x11,0x00,0x40,0x00,0x00,0x02,0x04,0x00,0x31,0x00,0x00,0x00,0x00,0x0E,0x07,
0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x62,0x00,0x00,0x00,0x40,0x00,0x01,
0x00,0xC6,0x00,0x80,0x01,0x60,0x00,0x01,0x80,0xC3,0x00,0x80,0x01,0x60,0x00,0x01,0x00,0x81,0x01,0x00,0x00,0x30,0x00,0x01,
0x00,0x03,0x03,0x80,0x7F,0x18,0x00,0x01,0x00,0x06,0x0E,0x80,0x04,0x0C,0x00,0x01,0x00,0x04,0x1C,0x00,0x04,0x47,0x00,0x01,
0x00,0x08,0x78,0x00,0x00,0xE3,0x00,0x01,0x00,0x90,0xE1,0x01,0x00,0x60,0x00,0x01,0x00,0xE0,0x86,0xFF,0x03,0xC0,0x02,0x01,
0x00,0x40,0x0C,0xF8,0x33,0x60,0x18,0x01,0x00,0x00,0x70,0x00,0x30,0x18,0x60,0x01,0x00,0x00,0x20,0x00,0x30,0x0C,0x00,0x01,
0x00,0x00,0x20,0x80,0x32,0x02,0x00,0x00,0x00,0x00,0xF0,0x00,0x12,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00/*"C:\Users\A\Desktop\哈.bmp",0*/
};


void setup() {
  /* 1. 初始化串口通讯波特率为115200*/
  Serial.begin(115200);

  /* 2. oled屏幕初始化 */
  oled.init();
  oled.flipScreenVertically();        // 设置屏幕翻转
  oled.setContrast(255);              // 设置屏幕亮度
  drawRect();                         // 测试屏幕显示
  oled.clear(); oled.display();       // 清除屏幕
}

void loop() {
  oled.setFont(ArialMT_Plain_24);       // 设置字体
  oled.drawString(0, 0, "HIT");//将要显示的文字写入缓存
  oled.drawString(0, 20, "Hello World!");
  oled.display();                       // 将缓存里的文字在屏幕上显示
  delay(3000);
  oled.clear(); oled.display();         // 清除屏幕

  /* 显示汉字 */
 oled.drawFastImage(4 + 15*0, 22, 15, 15, text[0]);
  oled.drawFastImage(4 + 15*1, 22, 15, 15, text[1]);
  oled.drawFastImage(4 + 15*2, 22, 15, 15, text[2]);
  oled.drawFastImage(4 + 15*3, 22, 15, 15, text[3]);
  oled.drawFastImage(4 + 15*4, 22, 15, 15, text[4]);
  oled.drawFastImage(4 + 15*5, 22, 15, 15, text[5]);
  oled.drawFastImage(4 + 15*6, 22, 15, 15, text[6]);
  oled.display();
  delay(3000);
  oled.clear(); oled.display();         // 清除屏幕

  /* 3. 显示图片*/
  oled.drawFastImage(32, 0, 64, 64, image);
  oled.display();
  delay(3000);
  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);
  }

}
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
驱动ESP8266来显示图片OLED上需要以下几个步骤: 1. 首先,你需要连接ESP8266和OLED。你可以使用I2C总线连接它们。确保你已经正确连接了引,并且OLED已经正确初始化。 2. 接下来,你需要在ESP8266上安装相应的库。你可以使用Adafruit_SSD1306库来驱动OLED显示器,利用ESP8266WiFi库来连接网络,以及使用ArduinoJson库来解析从高德开发平台获取的天气数据。 3. 在编写代码之前,你需要导入所需的库。在Arduino IDE中,你可以通过点击“工具”->“库管理器”来查找和安装这些库。 4. 然后,你需要编写代码来连接到高德开发平台,并获取天气数据。你可以使用ESP8266WiFi库和HTTPClient库来发送HTTP请求并获取响应。你需要提供高德开发平台的API密钥,并使用API来获取天气数据。 5. 在获取天气数据后,你可以使用ArduinoJson库来解析JSON数据,并提取所需的信息。 6. 最后,你可以使用Adafruit_SSD1306库来在OLED显示图片。该库提供了一些函数来绘制文本、图形和位图。你可以使用适当的函数来显示从高德开发平台获取的天气图标。 请注意,以上是一个大致的步骤,具体的实现可能会因你使用的硬件和库的版本而有所不同。你需要根据你的具体情况进行调整和修改。你可以参考库的文档和示例代码来帮助你完成相关的代码编写。 参考资料: 使用esp8266与oled连接高德开发平台实现,网络时间抓取更新,以及当地天气情况的显示。只有代码和所用到库。<span class="em">1</span> #### 引用[.reference_title] - *1* [esp8266+oled显示网络时间及当地的天气情况.zip](https://download.csdn.net/download/zimuaaaaa/11459427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值