#include <SPI.h>
#include <Wire.h>
#include <WiFi.h>
#include <time.h>
#include <U8g2lib.h>
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
time_t rawtime = time(nullptr);
struct tm* timeinfo = localtime(&rawtime);
int GMTOffset = -28800; //Replace with your GMT Offset in seconds
int daylightOffset = 0; //Replace with your daylight savings offset in seconds
int center_x = 64; // display x center, 64px for the 128x128px display
int center_y = 32;
void setup();
void screenA();
void loop() ;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
u8g2.setColorIndex(1); // set the color to white
u8g2.begin();
delay(2000);
u8g2.clearBuffer();
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
configTime(GMTOffset, daylightOffset, "pool.ntp.org","time.nist.gov");
screenA();
}
void screenA(){
u8g2.setColorIndex(1);
u8g2.clearBuffer();
int radius = 35;
u8g2.drawCircle(64, 32, 2, U8G2_DRAW_ALL);
//draw clock
for( int i=0; i < 360;i= i + 30 ){
float angle = i ;
angle=(angle/57.29577951) ;
int x1=(64+(sin(angle)*radius));
int y1=(32-(cos(angle)*radius));
int x2=(64+(sin(angle)*(radius-5)));
int y2=(32-(cos(angle)*(radius-5)));
u8g2.drawLine(x1,y1,x2,y2);
}
//draw second hand
u8g2.setColorIndex(1);
float angle = timeinfo->tm_sec*6 ;
angle=(angle/57.29577951) ;
int x2=(64+(sin(angle)*(radius)));
int y2=(32-(cos(angle)*(radius)));
u8g2.drawLine(64,32,x2,y2);
// draw minute hand
angle = timeinfo->tm_min * 6 ;
angle=(angle/57.29577951) ;
x2=(64+(sin(angle)*(radius-3)));
y2=(32-(cos(angle)*(radius-3)));
u8g2.drawLine(64,32,x2,y2);
// draw hour hand
angle = timeinfo->tm_hour * 30 + int((timeinfo->tm_min / 12) * 6 );
angle=(angle/57.29577951) ;
x2=(64+(sin(angle)*(radius-11)));
y2=(32-(cos(angle)*(radius-11)));
u8g2.drawLine(64,32,x2,y2);
delay(100);
u8g2.sendBuffer();
//display.clearDisplay();
}
void loop(){
rawtime = time(nullptr);
timeinfo = localtime(&rawtime);
screenA();
}
Loading
wemos-s2-mini
wemos-s2-mini