Esp8266 控制 0.96 olcd 屏显示网络时间

参考

连线

我的板子没有 SCL,但是按照连线 SCK-> D1 也可以正常使用。

ESP8266
Vin 3.3V
Gnd Gnd
Scl/Sck GPIO 5(D1)
Sda GPIO 4(D2)

https://www.cnblogs.com/cuianbing/p/14376811.html

image

代码

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
#include <NTPClient.h>
// change next line to use with another board/shield
#include <ESP8266WiFi.h>
//#include <WiFi.h> // for WiFi shield
//#include <WiFi101.h> // for WiFi 101 shield or MKR1000
#include <WiFiUdp.h>

const char* ssid     = "WIFI名称";
const char* password = "WIFI密码";
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp1.aliyun.com",60*60*8, 30*60*1000);
//iic驱动方式
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);  

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

  u8g2.begin();

  WiFi.begin(ssid, password);

  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
    Serial.print ( "." );
  }

  timeClient.begin();
  timeClient.update();
}

void loop() {
  // 不需要在循环里重复请求,在 setup 中请求一次即可
  // timeClient.update();
  u8g2.firstPage();
  do {
    // u8g2.setFont(u8g2_font_logisoso62_tn);
    u8g2.setFont(u8g2_font_6x13_tf);
    // u8g2.drawStr(0,63,timeClient.getFormattedTime().c_str());
    u8g2.drawStr(0,12,timeClient.getFormattedTime().c_str());
    // Serial.println ( timeClient.getFormattedTime() );
      // delay(1000);
    // u8g2.drawStr(0,63,"1");
  } while ( u8g2.nextPage() );

}

运行照片

image

posted @   夏秋初  阅读(317)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示