Fetch Current UTC Date and Time from NTP (Network Time Protocol)

Dependencies:   C12832_lcd EthernetInterface NTPClient mbed-rtos mbed

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?

UserRevisionLine numberNew 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 }