如何用将esp8266(nodemcu 1.0)的串口监视内容显示到oled0.9(4pin)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 未语

[未解决] 如何用将esp8266(nodemcu 1.0)的串口监视内容显示到oled0.9(4pin)

[复制链接]
 楼主| 发表于 2021-4-25 13:09 | 显示全部楼层
myself1820 发表于 2021-4-25 10:44
#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);

#include <Arduino.h>
#include <U8g2lib.h>
#include "ESP8266WiFi.h"

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

void setup() {
  Serial.begin(115200);
  u8g2.begin();

  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");
}

void loop() {

    u8g2.clearBuffer();          // clear the internal memory
    u8g2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font
   
  Serial.println("scan start");

  // WiFi.scanNetworks will return the number of networks found
  int n = WiFi.scanNetworks();
  Serial.println("scan done");
  if (n == 0) {
    Serial.println("no networks found");
  } else {
    Serial.print(n);
    Serial.println(" networks found");
    for (int i = 0; i < n; ++i) {
      // Print SSID and RSSI for each network found
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");
      delay(10);

      u8g2.drawStr(0,10,"???")
      u8g2.sendBuffer();          // transfer internal memory to the display
      delay(1000);
    }
  }
  Serial.println("");

  // Wait a bit before scanning again
  delay(5000);
}
 楼主| 发表于 2021-4-25 13:12 | 显示全部楼层
我就卡在这里了,不知到该怎么把这些串口监视器收集的内容,打印到0.9寸oled(4针)上,我用的是esp8266(NodeMcu 1.0)连接的0.9寸oled(4针)。
 楼主| 发表于 2021-4-25 13:38 | 显示全部楼层
未语 发表于 2021-4-25 13:12
我就卡在这里了,不知到该怎么把这些串口监视器收集的内容,打印到0.9寸oled(4针)上,我用的是esp8266(N ...

还有那个setPrintPos()函数无法用,也不知道什么原因。我在想要不要再额外加个UNO板子,连接oled显示。
发表于 2021-4-25 14:31 | 显示全部楼层
看你程序都是往串口打印数据
 楼主| 发表于 2021-4-25 16:02 | 显示全部楼层
myself1820 发表于 2021-4-25 14:31
看你程序都是往串口打印数据

我是想不仅可以从“串口监视器”看到收集到的网络信息,还能同步打印到oled上(因为oled上汉字显示有可能出现错误),需要串口监视器内容和oled显示内容作对比
发表于 2021-4-25 16:28 | 显示全部楼层
那你串口打印什么同样在OLED上也打印同样内容不就可以了
 楼主| 发表于 2021-4-25 17:47 | 显示全部楼层
myself1820 发表于 2021-4-25 16:28
那你串口打印什么同样在OLED上也打印同样内容不就可以了

oled函数不大会用啊,用print就得配合setPrintPos函数,用setPrintPos函数就得需要用到u8glib.h头文件。但是u8glib库不支持esp8266模块,不兼容。
如果用u8g2.drawStr(0,10,"???")函数无法打印串口显示内容。
发表于 2021-4-26 08:30 | 显示全部楼层
本帖最后由 myself1820 于 2021-4-26 08:32 编辑

试试这个库里的示例

ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays.rar

299.52 KB, 下载次数: 13

发表于 2021-4-26 14:19 | 显示全部楼层
楼主,你弄好了吗?我和你一样是同样的问题,请问一下你解决了嘛?
 楼主| 发表于 2021-4-29 21:11 | 显示全部楼层
myself1820 发表于 2021-4-26 08:30
试试这个库里的示例

好的谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 06:27 , Processed in 0.102904 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表