smart_watch
Dependencies: SNTPClinet WIZnetInterface mbed-src
Fork of smart_watch by
main.cpp
- Committer:
- Hoonhee
- Date:
- 2017-04-12
- Revision:
- 1:5eae4950211d
- Parent:
- 0:6e799e373101
File content as of revision 1:5eae4950211d:
#include "mbed.h"
#include "EthernetInterface.h"
#include "SNTPClient.h"
#include "SSD1306.h"
#if defined(TARGET_WIZwiki_W7500)
EthernetInterface eth;
/* DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4); */
DigitalIn sw(PC_0);
#endif
TCPSocketConnection sock;
DigitalOut myled(PA_6);
Serial pc(USBTX, USBRX); // tx, rx
datetime ntptime;
struct tm timeinfo;
int main()
{
uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
uint8_t count=0;
uint8_t time_x_offset =0;
uint8_t old_offset =0;
char buffer[32];
pc.baud(9600);
init();
cls();
OLED_DrawBMP(0,0,128,8,(unsigned char *)wiznet);
wait(1);
cls();
eth.init(mac_addr); //Use DHCP
eth.connect();
pc.printf("IP Address is %s\n\r", eth.getIPAddress());
SNTPClient sntp("time.nist.gov", 40); // timezone: Korea, Republic of
sntp.connect();
if(sntp.getTime(&ntptime) == true)
{
pc.printf("%d-%d-%d, %d:%d:%d\r\n", ntptime.yy, ntptime.mo, ntptime.dd, ntptime.hh, ntptime.mm, ntptime.ss);
wait(1.0);
}
else
{
while(sntp.getTime(&ntptime) != true)
{
//break;
}
}
timeinfo.tm_mon = ntptime.mo-1;
timeinfo.tm_mday = ntptime.dd;
timeinfo.tm_hour = ntptime.hh;
timeinfo.tm_min = ntptime.mm;
timeinfo.tm_sec = ntptime.ss;
timeinfo.tm_year = ntptime.yy-1900;
// printf("%d-%d, %d:%d:%d\r\n", timeinfo.tm_mon, timeinfo.tm_mday, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
time_t t =mktime(&timeinfo);
set_time(t);
t = time(NULL);
while (1) {
time_t seconds = time(NULL);
// printf("Time as a basic string = %s\r\n", ctime(&seconds));
if(count == 50)
{
cls();
count++;
}
if(count > 50)
{
time_x_offset =0;
if(old_offset != time_x_offset){
old_offset = time_x_offset;
}
//strftime (buffer,32,"%I:%M:%S ",localtime(&seconds));
strftime (buffer,32,"%I:%M",localtime(&seconds));
LED_P23x32Str(time_x_offset,3,buffer);
//intBigTime(buffer);
if(sw == 0)
{
count = 0;
cls();
}
}
else
{
strftime(buffer, 32,"%a %d %b %Y", localtime(&seconds));
OLED_ShowStr(10, 3, buffer,1 );
strftime(buffer, 32, "%I:%M:%S %p", localtime(&seconds));
OLED_ShowStr(10, 4, buffer,2 );
count ++;
}
}
}
