So, I am working on nrf52840 with nrf connect sdk and I want to get date and time in my project, I found a library in nrf connect sdk ->libraries->other libraries->date-time, I tried to add the configuration in my prj.conf, but an error occur.
So, I am working on nrf52840 with nrf connect sdk and I want to get date and time in my project, I found a library in nrf connect sdk ->libraries->other libraries->date-time, I tried to add the configuration in my prj.conf, but an error occur.
Yes I am using nrf52840dk, thanks for the solution I will do some study
Hello Jay_Lin,
If there is no additional hardware involved then you can not have real world date&time
With the nrf52840dk you can only have "systems tics counter"
You need a modem + sim-card
For example:
https://www.conrad.nl/nl/p/sos-electronic-arduino-mc60gsm-gps-1925472.html?utm_source=google&utm_medium=surfaces&utm_campaign=shopping-feed&utm_content=free-google-shopping-clicks&utm_term=1925472&adcampaign=gshop&tid=14579472676_122103879770_pla-304375124321_pla-1925472&gclid=CjwKCAjwo_KXBhAaEiwA2RZ8hL9boviQGXVCdF7HGNy9fEt0hANdcVzmH7xv0gVGdmEnsR13i1ODPRoC29EQAvD_BwE
Can you please mark my answer as solution, thanks! ;-)
Hi,
To use the DATE_TIME library with other nRF devices than nRF9160, you need to specify these configurations:
CONFIG_DATE_TIME=y CONFIG_DATE_TIME_MODEM=n CONFIG_DATE_TIME_NTP=n
And then supply the time manually. Here's a small snippet on how to do that:
/* * Copyright (c) 2012-2014 Wind River Systems, Inc. * * SPDX-License-Identifier: Apache-2.0 */ #include <zephyr.h> #include <date_time.h> #include <sys/printk.h> void main(void) { // Set time to 8th of June, 2022, 16:00 // unix timestamp: 1654704000000 struct tm time = { .tm_sec = 00, .tm_min = 00, .tm_hour = 16, .tm_mday = 8, .tm_mon = 6-1, .tm_year = 2022-1900, .tm_wday = 3, }; int err = date_time_set(&time); /* your err handling here */ printk("Hello World! %s\n", CONFIG_BOARD); int64_t unix_timestamp = 0; // Wait 10 seconds to see that the timestamp increments 10 seconds k_sleep(K_SECONDS(10)); err = date_time_now(&unix_timestamp); /* your err handling here */ // Use https://www.epochconverter.com/ to convert to human readable printk("unix timestamp: %lld", unix_timestamp); }
Kind regards,
Håkon
Thanks for the reply I am using nrf52840 which can't use Date-time, thanks alot though