NodeMCU-驱动SSD1306显示互联网时钟
目录
NodeMCU 驱动SSD1306显示互联网时钟
NodeMCU 驱动SSD1306显示
一、所用硬件
二、硬件连接
SSD1306 | NodeMCU |
---|---|
VCC | 3.3V |
GND | GND |
SCL | IO12 |
SDA | IO14 |
注: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) {
}