esp8266 基于sntp协议更新系统时间
我们esp8266设备,如何然他具有准确的系统时间呢?那就要依赖于sntp协议,一般芯片都集成了sntp协议,我们只需要使用就可以了。
1.创建一个sntp任务
sntp_example_task更新网络时间到本地
void app_main(void)
{
//modify cdb 2019-12-19
// printf("SDK version:%s\n", esp_get_idf_version());
// Initialize NVS
esp_err_t ret = nvs_flash_init();
char sys_time[64] = {0};
if (ret == ESP_ERR_NVS_NO_FREE_PAGES) {
ESP_ERROR_CHECK(nvs_flash_erase());
ret = nvs_flash_init();
}
ESP_ERROR_CHECK(ret);
//初始化wifi,并且联网
initialise_wifi();
//创建mqtt 处理线程
ret = xTaskCreate((void*)mqtt_client_thread,
MQTT_CLIENT_THREAD_NAME,
MQTT_CLIENT_THREAD_STACK_WORDS,
NULL,
MQTT_CLIENT_THREAD_PRIO,
NULL);
if (ret != pdPASS) {
DBG_C("mqtt create client thread %s failed\n", MQTT_CLIENT_THREAD_NAME);
}
//创建gpio led key处理任务
ret = xTaskCreate((void*)gpio_task,
GPIO_THREAD_NAME,
GPIO_THREAD_STACK_WORDS,
NULL,
GPIO_THREAD_PRIO,
NULL);
if (ret != pdPASS) {
DBG_C("qpio thread %s failed\n", GPIO_THREAD