Arnov Sharma
Published © MIT

CATCUBE Internet clock

ESP8266 powered mini desk clock made from scratch

BeginnerFull instructions provided1 hour162

Things used in this project

Hardware components

Espressif esp12f
×1
PCBWay Custom PCB
PCBWay Custom PCB
×1

Software apps and online services

Fusion
Autodesk Fusion

Hand tools and fabrication machines

3D Printer (generic)
3D Printer (generic)

Story

Read more

Custom parts and enclosures

Fusion360File

Schematics

sch

Code

CODE

C/C++
#include "NTPClient.h"
#include "ESP8266WiFi.h"
#include "WiFiUdp.h"

#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>

#define OLED_WIDTH 128
#define OLED_HEIGHT 64

#define OLED_ADDR   0x3C

Adafruit_SSD1306 display(OLED_WIDTH, OLED_HEIGHT);

const char *ssid = "SSID";
const char *password = "PASS";

const long utcOffsetInSeconds = 19800;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};


WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);

void setup(){
  
  display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
  display.clearDisplay();
  Serial.begin(115200);
  WiFi.begin(ssid, password);

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

timeClient.begin();
}

void loop() {
timeClient.update();

display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(13, 0);
display.println(daysOfTheWeek[timeClient.getDay()]);

display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(20, 30);
display.println(timeClient.getHours());

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(50, 30);
display.println(":");

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(60, 30);
display.println(timeClient.getMinutes());

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(85, 30);
display.println(":");

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(95, 30);
display.println(timeClient.getSeconds());




display.display();
delay(1000);
}

Credits

Arnov Sharma
330 projects • 337 followers
Just your average MAKER
Contact

Comments

Please log in or sign up to comment.