Fetch Current UTC Date and Time from NTP (Network Time Protocol)
Dependencies: C12832_lcd EthernetInterface NTPClient mbed-rtos mbed
main.cpp@1:039c06964ad9, 2015-10-10 (annotated)
- Committer:
- dwijaybane
- Date:
- Sat Oct 10 09:23:23 2015 +0000
- Revision:
- 1:039c06964ad9
- Parent:
- 0:0d3b3b9fd82e
comments updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dwijaybane | 1:039c06964ad9 | 1 | #include "mbed.h" // Basic Library required for onchip peripherals |
dwijaybane | 1:039c06964ad9 | 2 | #include "EthernetInterface.h" // Ethernet Library |
dwijaybane | 1:039c06964ad9 | 3 | #include "NTPClient.h" // Network Time Protocol client Library |
dwijaybane | 1:039c06964ad9 | 4 | #include "C12832_lcd.h" // Library for SPI based LCD |
dwijaybane | 0:0d3b3b9fd82e | 5 | |
dwijaybane | 1:039c06964ad9 | 6 | /* Create Objects */ |
dwijaybane | 1:039c06964ad9 | 7 | C12832_LCD lcd; // Initialize lcd object with SPI pins |
dwijaybane | 1:039c06964ad9 | 8 | EthernetInterface eth; // Initialize Ethernet object |
dwijaybane | 1:039c06964ad9 | 9 | NTPClient ntp; // Initialize NTP object |
dwijaybane | 0:0d3b3b9fd82e | 10 | |
dwijaybane | 1:039c06964ad9 | 11 | // For Static IP |
dwijaybane | 0:0d3b3b9fd82e | 12 | static const char* mbedIp = "192.168.0.160"; //IP |
dwijaybane | 0:0d3b3b9fd82e | 13 | static const char* mbedMask = "255.255.255.0"; // Mask |
dwijaybane | 1:039c06964ad9 | 14 | static const char* mbedGateway = "192.168.0.254"; //Gateway |
dwijaybane | 0:0d3b3b9fd82e | 15 | |
dwijaybane | 0:0d3b3b9fd82e | 16 | int main() |
dwijaybane | 0:0d3b3b9fd82e | 17 | { |
dwijaybane | 0:0d3b3b9fd82e | 18 | EthernetInterface eth; |
dwijaybane | 1:039c06964ad9 | 19 | // eth.init(); // For DHCP uncomment this line |
dwijaybane | 1:039c06964ad9 | 20 | eth.init(mbedIp,mbedMask,mbedGateway); //Use these parameters for static IP (Comment for DHCP) |
dwijaybane | 1:039c06964ad9 | 21 | eth.connect(); //Connect with Network and get IP address |
dwijaybane | 0:0d3b3b9fd82e | 22 | lcd.printf("Connected! IP Address is %s\n", eth.getIPAddress()); |
dwijaybane | 0:0d3b3b9fd82e | 23 | |
dwijaybane | 0:0d3b3b9fd82e | 24 | lcd.cls(); |
dwijaybane | 0:0d3b3b9fd82e | 25 | lcd.printf("Trying to update time...\r\n"); |
dwijaybane | 1:039c06964ad9 | 26 | if (ntp.setTime("0.pool.ntp.org") == 0) { // ntp server |
dwijaybane | 0:0d3b3b9fd82e | 27 | lcd.printf("Set time successfully\r\n"); |
dwijaybane | 0:0d3b3b9fd82e | 28 | while(1) { |
dwijaybane | 0:0d3b3b9fd82e | 29 | lcd.cls(); |
dwijaybane | 0:0d3b3b9fd82e | 30 | lcd.locate(0,0); |
dwijaybane | 0:0d3b3b9fd82e | 31 | time_t ctTime; |
dwijaybane | 0:0d3b3b9fd82e | 32 | ctTime = time(NULL); |
dwijaybane | 0:0d3b3b9fd82e | 33 | lcd.printf("%s\r\n", ctime(&ctTime)); |
dwijaybane | 0:0d3b3b9fd82e | 34 | lcd.printf("Current Time (UTC)"); |
dwijaybane | 0:0d3b3b9fd82e | 35 | wait(1); |
dwijaybane | 0:0d3b3b9fd82e | 36 | } |
dwijaybane | 0:0d3b3b9fd82e | 37 | } else { |
dwijaybane | 0:0d3b3b9fd82e | 38 | lcd.printf("NTP Error\r\n"); |
dwijaybane | 0:0d3b3b9fd82e | 39 | } |
dwijaybane | 0:0d3b3b9fd82e | 40 | |
dwijaybane | 0:0d3b3b9fd82e | 41 | eth.disconnect(); |
dwijaybane | 0:0d3b3b9fd82e | 42 | |
dwijaybane | 0:0d3b3b9fd82e | 43 | while(1) { |
dwijaybane | 0:0d3b3b9fd82e | 44 | } |
dwijaybane | 0:0d3b3b9fd82e | 45 | } |