cc3000_ntp_demo_F446RE

Dependencies:   NTPClient2 NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed

Fork of cc3000_ntp_demo by Martin Kojtal

Committer:
JackB
Date:
Sat Oct 17 23:12:10 2015 +0000
Revision:
8:6870e6801838
Parent:
6:4cc48f349aed
CC3000 NTP demo on Nucleo F446RE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 0:606d6c8dcb58 1 /* mbed Microcontroller Library
Kojto 0:606d6c8dcb58 2 * Copyright (c) 2006-2013 ARM Limited
Kojto 0:606d6c8dcb58 3 *
Kojto 0:606d6c8dcb58 4 * Licensed under the Apache License, Version 2.0 (the "License");
Kojto 0:606d6c8dcb58 5 * you may not use this file except in compliance with the License.
Kojto 0:606d6c8dcb58 6 * You may obtain a copy of the License at
Kojto 0:606d6c8dcb58 7 *
Kojto 0:606d6c8dcb58 8 * http://www.apache.org/licenses/LICENSE-2.0
Kojto 0:606d6c8dcb58 9 *
Kojto 0:606d6c8dcb58 10 * Unless required by applicable law or agreed to in writing, software
Kojto 0:606d6c8dcb58 11 * distributed under the License is distributed on an "AS IS" BASIS,
Kojto 0:606d6c8dcb58 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Kojto 0:606d6c8dcb58 13 * See the License for the specific language governing permissions and
Kojto 0:606d6c8dcb58 14 * limitations under the License.
Kojto 0:606d6c8dcb58 15 */
Kojto 0:606d6c8dcb58 16 #include "mbed.h"
Kojto 0:606d6c8dcb58 17 #include "cc3000.h"
Kojto 0:606d6c8dcb58 18 #include "main.h"
Kojto 0:606d6c8dcb58 19 #include "NTPClient.h"
Kojto 0:606d6c8dcb58 20
JackB 8:6870e6801838 21 #define CC3000_IRQ D3 // (D3)
JackB 8:6870e6801838 22 #define CC3000_EN D5 // (D5)
JackB 8:6870e6801838 23 #define CC3000_CS D10 // (D10)
JackB 8:6870e6801838 24 #define CC3000_MOSI D11 // (D11)
JackB 8:6870e6801838 25 #define CC3000_MISO D12 // (D12)
JackB 8:6870e6801838 26 #define CC3000_SCLK D13 // (D13)
JackB 8:6870e6801838 27
JackB 8:6870e6801838 28 #define SSID "Prakjaroen"
JackB 8:6870e6801838 29 #define PHRASE "A4B5C6D7E8F9"
JackB 8:6870e6801838 30 #define SECURITY WPA2
JackB 8:6870e6801838 31
JackB 8:6870e6801838 32 #define IP "192.168.2.165"
JackB 8:6870e6801838 33 #define MASK "255.255.255.0"
JackB 8:6870e6801838 34 #define GW "192.168.2.1"
JackB 8:6870e6801838 35 #define DHCP 1
JackB 8:6870e6801838 36
Kojto 0:606d6c8dcb58 37 using namespace mbed_cc3000;
Kojto 0:606d6c8dcb58 38
JackB 8:6870e6801838 39 #if defined TARGET_NUCLEO_F446RE
JackB 8:6870e6801838 40 //cc3000 wifi(IRQ, EN, CS, SPI(MOSI, MISO, SCLK), SSID, PHRASE, SECURITY, false);
JackB 8:6870e6801838 41 cc3000 wifi(D3, D5, D10, SPI(D11, D12, D13), "Prakjaroen", "A4B5C6D7E8F9", WPA2, false);
Kojto 3:4a2dfa38a61e 42 Serial pc(USBTX, USBRX);
Kojto 2:f163731f852a 43 #endif
Kojto 2:f163731f852a 44
Kojto 3:4a2dfa38a61e 45 /**
Kojto 3:4a2dfa38a61e 46 * \brief NTP client demo
Kojto 0:606d6c8dcb58 47 * \param none
Kojto 0:606d6c8dcb58 48 * \return int
Kojto 0:606d6c8dcb58 49 */
Kojto 0:606d6c8dcb58 50 int main() {
Kojto 2:f163731f852a 51 init(); /* board dependent init */
JackB 8:6870e6801838 52 pc.baud(230400);
Kojto 5:6d9d149b01cd 53
JackB 8:6870e6801838 54 printf("\r\n--------------------------------------------------------------------------------\r\n");
JackB 8:6870e6801838 55 printf("cc3000 NTP client demo.\r\n");
JackB 8:6870e6801838 56 #if (DHCP == 1)
JackB 8:6870e6801838 57 printf("Initialize the interface using DHCP...\r\n");
JackB 8:6870e6801838 58 printf("wifi.init() ");
Kojto 5:6d9d149b01cd 59 wifi.init();
JackB 8:6870e6801838 60 #else
JackB 8:6870e6801838 61 printf("Initialize the interface using a static IP address...\r\n");
JackB 8:6870e6801838 62 printf("wifi.init(%s, %s, %s) ", IP, MASK, GW);
JackB 8:6870e6801838 63 wifi.init(IP, MASK, GW);
JackB 8:6870e6801838 64 #endif
JackB 8:6870e6801838 65 printf("done.\r\n");
JackB 8:6870e6801838 66 printf("wifi.connect() ");
Kojto 5:6d9d149b01cd 67 if (wifi.connect() == -1) {
JackB 8:6870e6801838 68 printf("failed.\r\n");
Kojto 5:6d9d149b01cd 69 printf("Failed to connect. Please verify connection details and try again. \r\n");
Kojto 0:606d6c8dcb58 70 } else {
JackB 8:6870e6801838 71 printf("done.\r\n");
JackB 8:6870e6801838 72 printf("IP address: %s \r\n", wifi.getIPAddress());
Kojto 0:606d6c8dcb58 73 }
Kojto 0:606d6c8dcb58 74
JackB 8:6870e6801838 75 NTPClient ntp_client;
JackB 8:6870e6801838 76 time_t ct_time;
JackB 8:6870e6801838 77 char time_buffer[80];
JackB 8:6870e6801838 78 char time_buffer_old[80];
JackB 8:6870e6801838 79 wait(1);
JackB 8:6870e6801838 80
JackB 8:6870e6801838 81 strcpy(time_buffer_old, "");
JackB 8:6870e6801838 82
JackB 8:6870e6801838 83 // Parameters
JackB 8:6870e6801838 84 char* domain_name = "0.uk.pool.ntp.org";
JackB 8:6870e6801838 85 int port_number = 123;
JackB 8:6870e6801838 86
JackB 8:6870e6801838 87 // Read time from server
JackB 8:6870e6801838 88 printf("Reading time...\r\n");
JackB 8:6870e6801838 89 ntp_client.setTime(domain_name, port_number);
JackB 8:6870e6801838 90
JackB 8:6870e6801838 91 // ct_time = time(NULL);
JackB 8:6870e6801838 92 // strftime(time_buffer, 80, "%a %b %d %T %p %z %Z\n", localtime(&ct_time));
JackB 8:6870e6801838 93 // printf("UTC/GMT: %s\n", time_buffer);
JackB 8:6870e6801838 94 // printf("UTC %s\n", ctime(&ct_time));
Kojto 3:4a2dfa38a61e 95
JackB 8:6870e6801838 96 // Choose standard or daylight savings time, comment out other
JackB 8:6870e6801838 97 // ct_time= time(NULL) + 3600; // Winter time - Convert to Europe/Amsterdam Time
JackB 8:6870e6801838 98 ct_time = time(NULL) + 7200; // Summer time - Convert to Europe/Amsterdam Time
JackB 8:6870e6801838 99 set_time(ct_time);
JackB 8:6870e6801838 100
JackB 8:6870e6801838 101 // ct_time = time(NULL);
JackB 8:6870e6801838 102 strftime(time_buffer, 80, "%a %d-%b-%Y %T", localtime(&ct_time));
JackB 8:6870e6801838 103 printf("%s\r\n", time_buffer);
JackB 8:6870e6801838 104
JackB 8:6870e6801838 105 while (1) {
JackB 8:6870e6801838 106 ct_time = time(NULL);
JackB 8:6870e6801838 107 strftime(time_buffer, 80, "%S", localtime(&ct_time));
JackB 8:6870e6801838 108 if (strcmp(time_buffer, time_buffer_old) != 0) {
JackB 8:6870e6801838 109 strcpy(time_buffer_old, time_buffer);
JackB 8:6870e6801838 110 strftime(time_buffer, 80, "%a %d-%b-%Y %T", localtime(&ct_time));
JackB 8:6870e6801838 111 printf("%s\r\n", time_buffer);
JackB 8:6870e6801838 112 // Sync ones a day
JackB 8:6870e6801838 113 strftime(time_buffer, 80, "%T", localtime(&ct_time));
JackB 8:6870e6801838 114 if (strcmp(time_buffer, "00:00:00") == 0) {
JackB 8:6870e6801838 115 ntp_client.setTime(domain_name, port_number);
JackB 8:6870e6801838 116 }
JackB 8:6870e6801838 117 }
Kojto 0:606d6c8dcb58 118 }
Kojto 0:606d6c8dcb58 119 }
Kojto 0:606d6c8dcb58 120