smart_watch

Dependencies:   SNTPClinet WIZnetInterface mbed-src

Fork of smart_watch by WIZnet

Committer:
Hoonhee
Date:
Wed Apr 12 04:32:38 2017 +0000
Revision:
1:5eae4950211d
Parent:
0:6e799e373101
smart_watch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eunkyoungkim 0:6e799e373101 1 #include "mbed.h"
eunkyoungkim 0:6e799e373101 2 #include "EthernetInterface.h"
eunkyoungkim 0:6e799e373101 3 #include "SNTPClient.h"
eunkyoungkim 0:6e799e373101 4 #include "SSD1306.h"
eunkyoungkim 0:6e799e373101 5
eunkyoungkim 0:6e799e373101 6 #if defined(TARGET_WIZwiki_W7500)
eunkyoungkim 0:6e799e373101 7 EthernetInterface eth;
eunkyoungkim 0:6e799e373101 8 /* DigitalOut led1(LED1);
eunkyoungkim 0:6e799e373101 9 DigitalOut led2(LED2);
eunkyoungkim 0:6e799e373101 10 DigitalOut led3(LED3);
eunkyoungkim 0:6e799e373101 11 DigitalOut led4(LED4); */
eunkyoungkim 0:6e799e373101 12 DigitalIn sw(PC_0);
Hoonhee 1:5eae4950211d 13
eunkyoungkim 0:6e799e373101 14
eunkyoungkim 0:6e799e373101 15 #endif
eunkyoungkim 0:6e799e373101 16 TCPSocketConnection sock;
eunkyoungkim 0:6e799e373101 17
eunkyoungkim 0:6e799e373101 18 DigitalOut myled(PA_6);
eunkyoungkim 0:6e799e373101 19
eunkyoungkim 0:6e799e373101 20 Serial pc(USBTX, USBRX); // tx, rx
eunkyoungkim 0:6e799e373101 21
eunkyoungkim 0:6e799e373101 22 datetime ntptime;
eunkyoungkim 0:6e799e373101 23 struct tm timeinfo;
eunkyoungkim 0:6e799e373101 24
eunkyoungkim 0:6e799e373101 25
eunkyoungkim 0:6e799e373101 26 int main()
eunkyoungkim 0:6e799e373101 27 {
Hoonhee 1:5eae4950211d 28 uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
Hoonhee 1:5eae4950211d 29 uint8_t count=0;
Hoonhee 1:5eae4950211d 30 uint8_t time_x_offset =0;
Hoonhee 1:5eae4950211d 31 uint8_t old_offset =0;
Hoonhee 1:5eae4950211d 32 char buffer[32];
Hoonhee 1:5eae4950211d 33
Hoonhee 1:5eae4950211d 34 pc.baud(9600);
eunkyoungkim 0:6e799e373101 35 init();
eunkyoungkim 0:6e799e373101 36 cls();
eunkyoungkim 0:6e799e373101 37 OLED_DrawBMP(0,0,128,8,(unsigned char *)wiznet);
eunkyoungkim 0:6e799e373101 38 wait(1);
Hoonhee 1:5eae4950211d 39 cls();
eunkyoungkim 0:6e799e373101 40 eth.init(mac_addr); //Use DHCP
eunkyoungkim 0:6e799e373101 41 eth.connect();
Hoonhee 1:5eae4950211d 42
Hoonhee 1:5eae4950211d 43 pc.printf("IP Address is %s\n\r", eth.getIPAddress());
eunkyoungkim 0:6e799e373101 44 SNTPClient sntp("time.nist.gov", 40); // timezone: Korea, Republic of
eunkyoungkim 0:6e799e373101 45 sntp.connect();
eunkyoungkim 0:6e799e373101 46 if(sntp.getTime(&ntptime) == true)
eunkyoungkim 0:6e799e373101 47 {
Hoonhee 1:5eae4950211d 48 pc.printf("%d-%d-%d, %d:%d:%d\r\n", ntptime.yy, ntptime.mo, ntptime.dd, ntptime.hh, ntptime.mm, ntptime.ss);
Hoonhee 1:5eae4950211d 49 wait(1.0);
eunkyoungkim 0:6e799e373101 50 }
eunkyoungkim 0:6e799e373101 51 else
eunkyoungkim 0:6e799e373101 52 {
Hoonhee 1:5eae4950211d 53 while(sntp.getTime(&ntptime) != true)
eunkyoungkim 0:6e799e373101 54 {
Hoonhee 1:5eae4950211d 55 //break;
eunkyoungkim 0:6e799e373101 56 }
eunkyoungkim 0:6e799e373101 57 }
eunkyoungkim 0:6e799e373101 58
Hoonhee 1:5eae4950211d 59 timeinfo.tm_mon = ntptime.mo-1;
Hoonhee 1:5eae4950211d 60 timeinfo.tm_mday = ntptime.dd;
Hoonhee 1:5eae4950211d 61 timeinfo.tm_hour = ntptime.hh;
Hoonhee 1:5eae4950211d 62 timeinfo.tm_min = ntptime.mm;
Hoonhee 1:5eae4950211d 63 timeinfo.tm_sec = ntptime.ss;
Hoonhee 1:5eae4950211d 64 timeinfo.tm_year = ntptime.yy-1900;
Hoonhee 1:5eae4950211d 65 // printf("%d-%d, %d:%d:%d\r\n", timeinfo.tm_mon, timeinfo.tm_mday, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
Hoonhee 1:5eae4950211d 66 time_t t =mktime(&timeinfo);
eunkyoungkim 0:6e799e373101 67
Hoonhee 1:5eae4950211d 68 set_time(t);
Hoonhee 1:5eae4950211d 69 t = time(NULL);
eunkyoungkim 0:6e799e373101 70
eunkyoungkim 0:6e799e373101 71 while (1) {
eunkyoungkim 0:6e799e373101 72 time_t seconds = time(NULL);
eunkyoungkim 0:6e799e373101 73
eunkyoungkim 0:6e799e373101 74 // printf("Time as a basic string = %s\r\n", ctime(&seconds));
eunkyoungkim 0:6e799e373101 75 if(count == 50)
eunkyoungkim 0:6e799e373101 76 {
eunkyoungkim 0:6e799e373101 77 cls();
eunkyoungkim 0:6e799e373101 78 count++;
eunkyoungkim 0:6e799e373101 79 }
eunkyoungkim 0:6e799e373101 80 if(count > 50)
eunkyoungkim 0:6e799e373101 81 {
eunkyoungkim 0:6e799e373101 82 time_x_offset =0;
eunkyoungkim 0:6e799e373101 83 if(old_offset != time_x_offset){
eunkyoungkim 0:6e799e373101 84 old_offset = time_x_offset;
Hoonhee 1:5eae4950211d 85 }
eunkyoungkim 0:6e799e373101 86 //strftime (buffer,32,"%I:%M:%S ",localtime(&seconds));
eunkyoungkim 0:6e799e373101 87 strftime (buffer,32,"%I:%M",localtime(&seconds));
eunkyoungkim 0:6e799e373101 88 LED_P23x32Str(time_x_offset,3,buffer);
eunkyoungkim 0:6e799e373101 89
eunkyoungkim 0:6e799e373101 90 //intBigTime(buffer);
eunkyoungkim 0:6e799e373101 91 if(sw == 0)
eunkyoungkim 0:6e799e373101 92 {
eunkyoungkim 0:6e799e373101 93 count = 0;
Hoonhee 1:5eae4950211d 94 cls();
eunkyoungkim 0:6e799e373101 95 }
eunkyoungkim 0:6e799e373101 96
eunkyoungkim 0:6e799e373101 97 }
eunkyoungkim 0:6e799e373101 98 else
Hoonhee 1:5eae4950211d 99 {
Hoonhee 1:5eae4950211d 100 strftime(buffer, 32,"%a %d %b %Y", localtime(&seconds));
Hoonhee 1:5eae4950211d 101 OLED_ShowStr(10, 3, buffer,1 );
Hoonhee 1:5eae4950211d 102 strftime(buffer, 32, "%I:%M:%S %p", localtime(&seconds));
Hoonhee 1:5eae4950211d 103 OLED_ShowStr(10, 4, buffer,2 );
Hoonhee 1:5eae4950211d 104 count ++;
eunkyoungkim 0:6e799e373101 105 }
eunkyoungkim 0:6e799e373101 106 }
eunkyoungkim 0:6e799e373101 107 }