ESP8266 NODEMCU TM1637 NTP
/in Arduino /by อ.เอ้ด#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <TM1637Display.h> //
#define CLK D2 // Define the connections pins:
#define DIO D3
TM1637Display display = TM1637Display(CLK, DIO); // Create display object of type TM1637Display:
const char *ssid = “XXXX”;
const char *password = “xxxxx”;
//const long utcOffsetInSeconds = 19802;
const long utcOffsetInSeconds = 25200;
// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, “1.th.pool.ntp.org”, utcOffsetInSeconds);
void setup(){
Serial.begin(9600);
Serial.println();
// Begin serial communication at a baud rate of 9600:
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
Serial.print ( “.” );
}
timeClient.begin();
}
void loop() {
int A,B;
display.setBrightness(7); // Set the brightness:
timeClient.update();
unsigned long epochTime = timeClient.getEpochTime(); //get date
Serial.print(“Epoch Time: “);
Serial.println(epochTime);
int currentHour = timeClient.getHours();
Serial.print(“Hour: “);
Serial.println(currentHour);
int currentMinute = timeClient.getMinutes();
Serial.print(“Minutes: “);
Serial.println(currentMinute);
//Get a time structure
struct tm *ptm = gmtime ((time_t *)&epochTime);
int monthDay = ptm->tm_mday;
Serial.print(“Month day: “);
Serial.print(monthDay);
display.showNumberDec(monthDay, false, 2, 1);
delay(3000);
display.clear();
int currentMonth = ptm->tm_mon+1;
Serial.print(” Month: “);
Serial.print(currentMonth);
display.showNumberDec(currentMonth, true, 2, 1);
delay(3000);
display.clear();
//int currentYear = ptm->tm_year+1900;
int currentYear = ptm->tm_year+2443;
Serial.print(” Year: “);
Serial.println(currentYear);
display.showNumberDec(currentYear, false, 4, 0);
delay(3000);
display.clear();
A = timeClient.getHours() * 100 + timeClient.getMinutes();
B = timeClient.getSeconds();
if((B % 2) == 0)
{
display.showNumberDecEx(A, 0b01000000 , false, 4, 0);
}
else
{
display.showNumberDecEx(A, 0b00000000 , false, 4, 0);
}
delay (3000);
display.clear();
}
.