smart_watch
Dependencies: SNTPClinet WIZnetInterface mbed-src
Fork of smart_watch by
main.cpp@1:5eae4950211d, 2017-04-12 (annotated)
- 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?
User | Revision | Line number | New 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 | } |