标题用ESP8266、OLED显示进度条、网络名称、IP及网络时间
说明:用手头的ESP8266、OLED显示进度条、网络名称、IP及网络时间,参考了网友们的经验,程序简单易懂。纯粹好玩,无用也不收费,不理解网上有人下载别人的东西,再上传收费,为啥?
用料:
ESP8266
四针0.96OLED显示屏,使用I2C接口
接法:
OLED SDA—ESP8266 D2
OLED SCL—ESP8266 D1
程序:
#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <U8g2lib.h>
#define rst 2
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);
const char *ssid= "wifi名写到这里";
const char *password = "wifi密码写道这里";
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP,"ntp1.aliyun.com",60*60*8,30*60*1000);
void setup(){
u8g2.begin();
u8g2.enableUTF8Print();
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
}
timeClient.begin();
u8g2.setFont(u8g2_font_6x13_tf);
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2.drawFrame(8, 30, 100, 10);
for (int l=0;l<=100;l++){
delay( 50 );
u8g2.drawBox(8, 30, l, 10);
u8g2.setCursor(50,20);
u8g2.println(l);
u8g2.println("%");
u8g2.sendBuffer();
delay(50);
}
}
void loop() {
u8g2.setFont(u8g2_font_6x13_tf);
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2.setCursor(0,12);
u8g2.print("WiFi: ");
u8g2.println(ssid);
u8g2.setCursor(0,24);
u8g2.println("Password: ");
u8g2.println(password);
u8g2.setCursor(0,36);
u8g2.println("IP address: ");
u8g2.setCursor(0,48);
u8g2.println(WiFi.localIP());
timeClient.update();
u8g2.setCursor(0,60);
u8g2.println("Time: ");
u8g2.println(timeClient.getFormattedTime());
u8g2.sendBuffer();
delay(1000);
}