Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
Arnov Sharma
Published © LGPL

Internet Clock with ESP8266

Made an Internet Clock from scratch using a custom ESP8266 Board.

BeginnerFull instructions provided1 hour1,043
Internet Clock with ESP8266

Things used in this project

Hardware components

ESP8266 ESP-12E
Espressif ESP8266 ESP-12E
×1
NodeMCU ESP8266 Breakout Board
NodeMCU ESP8266 Breakout Board
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Seeed Studio Fusion PCB/PCBA
Seeed Studio Fusion PCB/PCBA

Story

Read more

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 = "addyourSSID";
const char *password = "andYourPass";

const long utcOffsetInSeconds = 19800; //Change this according to your GTM

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(3);
display.setTextColor(WHITE);
display.setCursor(13, 0);

display.println(daysOfTheWeek[timeClient.getDay()]);

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(38, 28);
display.println(timeClient.getHours());

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(60, 28);
display.println(":");

display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(70, 28);
display.println(timeClient.getMinutes());
//display.println(":");
//display.println(timeClient.getSeconds());


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

Credits

Arnov Sharma
339 projects • 344 followers
Just your average MAKER
Contact

Comments

Please log in or sign up to comment.