目录

NodeMCU-驱动SSD1306显示互联网时钟

NodeMCU 驱动SSD1306显示互联网时钟

NodeMCU 驱动SSD1306显示

一、所用硬件

https://i-blog.csdnimg.cn/blog_migrate/6614588810c1b99ea24fc4ef6e2656eb.png

https://i-blog.csdnimg.cn/blog_migrate/bc7d5ea7091bc4863652543495f83e5c.png

二、硬件连接

SSD1306NodeMCU
VCC3.3V
GNDGND
SCLIO12
SDAIO14

注:IO12和IO14可以换成其他引脚,只需要在代码里做相应改动即可。

三、代码

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>
#include <Ticker.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <ESP8266WiFi.h>          
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>

Ticker flipper;

U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ 12, /* data=*/ 14, /* reset=*/ U8X8_PIN_NONE);   // All Boards without Reset of the Display
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp1.aliyun.com",60*60*8, 30*60*1000);

char buf[256] = {};

void flip() {
  timeClient.update();
  sprintf(buf, "%s", timeClient.getFormattedTime().c_str());
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_logisoso24_tf);
    u8g2.drawStr(10,40,buf);
  } while ( u8g2.nextPage() );
}

void setup(void) {
  u8g2.begin();
  u8g2.enableUTF8Print();
  WiFiManager wifiManager;
  wifiManager.autoConnect("ConnectAP");
  timeClient.begin();  
  flipper.attach(1, flip);
}

void loop(void) {

}

四、NodeMCU引脚图

https://i-blog.csdnimg.cn/blog_migrate/c7f7c391055203de3674a80d28e32b43.png#pic_center

五、效果图

https://i-blog.csdnimg.cn/blog_migrate/f3f0c5655f878e4ccb77fd2d587ddc36.png