曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用SNTP協(xié)議獲取ESP8266網(wǎng)絡(luò)時間

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:安迪西 ? 2023-04-18 15:07 ? 次閱讀

1. NTP和SNTP協(xié)議

NTP是網(wǎng)絡(luò)時間協(xié)議(Network Time Protocol),用來同步網(wǎng)絡(luò)設(shè)備(如PC、手機)的時間的協(xié)議

SNTP由 NTP改編而來(簡單網(wǎng)絡(luò)時間協(xié)議,Simple NTP)大大簡化了 NTP協(xié)議,同時也能保證時間達到一定的精確度。在實際應(yīng)用中,SNTP協(xié)議主要被用來同步因特網(wǎng)上計算機的時間

SNTP協(xié)議采用客戶端/服務(wù)器的工作方式,可以采用單播(點對點)或者廣播(一點對多點)模式操作。SNTP服務(wù)器通過接收 GPS信號或自帶的原子鐘作為系統(tǒng)的時間基準。單播模式下,SNTP客戶端能夠通過定期訪問 SNTP服務(wù)器獲得準確的時間信息,用于調(diào)整客戶端自身所在系統(tǒng)的時間,達到同步時間的目的。廣播模式下,SNTP服務(wù)器周期性地發(fā)送消息給指定的 IP廣播地址或者 IP多播地址。SNTP客戶端通過監(jiān)聽這些地址來獲得時間信息

一些常見的 NTP服務(wù)器

  • 最常見的NTP服務(wù)器:www.pool.ntp.org/zone/cn
  • 其國內(nèi)地址為:cn.pool.ntp.org
  • Windows系統(tǒng)上自帶的兩個:time.windows.com 和 time.nist.gov
  • Mac OS上自帶的兩個:time.apple.com 和 time.asia.apple.com

圖片

2. SNTP接口說明

設(shè)置SNTP服務(wù)器:通過IP地址設(shè)置SNTP服務(wù)器,最多支持設(shè)置3個

void sntp_setserver(unsigned char idx, ip_addr_t *addr)
//idx 服務(wù)器編號,最多?持3個(0~2);0為主服務(wù)器,1和2為備用
//addr 服務(wù)器IP地址;需自行確保傳入的是合法SNTP服務(wù)器地址

設(shè)置SNTP服務(wù)器:通過域名設(shè)置SNTP服務(wù)器,最多支持設(shè)置3個

void sntp_setservername(unsigned char idx, char *server)
//idx 服務(wù)器編號,最多?持3個(0~2);0號為主服務(wù)器,1和2號為備用
//server 服務(wù)器域名;需自行確保傳入的是合法SNTP服務(wù)器域名

初始化和關(guān)閉SNTP

void sntp_init(void)
void sntp_stop(void)

查詢當(dāng)前距離基準時間(1970.01.01 00:00:00 GMT+8)的時間戳,單位為秒

uint32 sntp_get_current_timestamp()
//返回值:距離基準時間的時間戳

查詢實際時間(GMT+8)

char* sntp_get_real_time(long t)
//t 與基準時間相距的時間戳
//返回值:實際時間

3. SNTP功能實現(xiàn)

SNTP功能開發(fā):在 freeRTOS下新建 SNTP任務(wù),實現(xiàn)定時5秒串口打印一次網(wǎng)絡(luò)時間

任務(wù)流程如下示:

圖片

實現(xiàn)步驟如下:

ESP8266_RTOS_SDK目錄下新建sntp文件夾,把ESP8266開發(fā)環(huán)境搭建中的 app目錄下所有文件拷貝到該文件夾中

在user目錄下新建 user_sntp.c文件,并添加如下代碼

/*******************user_sntp.c********************************/
char* SntpServerNames[3] ={
"ntp1.aliyun.com",
"ntp2.aliyun.com",
"ntp3.aliyun.com"
};
//ATaskSntp任務(wù)
void ATaskSntp( void *pvParameters ){
  STATION_STATUS Status;
  uint32 time;
  do{
    Status = wifi_station_get_connect_status();
    vTaskDelay(100);   
  }while(Status != STATION_GOT_IP);
  printf("task is SNTP
");
  printf("STATION_GOT_IP!
");
  sntp_setservername(0,SntpServerNames[0]);
  sntp_setservername(1,SntpServerNames[1]);
  sntp_setservername(2,SntpServerNames[2]);
  sntp_init();
  for(;;){
    time = sntp_get_current_timestamp();
    if(time){
      printf("current date:%s
",sntp_get_real_time(time));
    }
    vTaskDelay(500);
  }
  vTaskDelete(NULL);
}
//Sntp_init 初始化
void Sntp_init(void){
  xTaskCreate(ATaskSntp, "Sntp", 512, NULL, 4, NULL);
}

在include目錄下新建 user_sntp.h文件,并添加聲明

void ATaskSntp(void *pvParameters);
void Sntp_init(void);

在user_main.c文件中的 user_init()函數(shù)下添加如下代碼

#define SSID "Hotspot"    //ESP8266要加入的無線網(wǎng)
#define PASSWORD "88888888"
void ICACHE_FLASH_ATTR
user_init(void){
  printf("SDK version:%s
", system_get_sdk_version());
  Led_init();
  wifi_set_opmode(STATION_MODE);
  struct station_config *config = (struct station_config *)        zalloc(sizeof(struct station_config));
  sprintf(config->ssid,SSID);
  sprintf(config->password,PASSWORD);
  wifi_station_set_config(config);
  free(config);
  wifi_station_set_auto_connect(TRUE);    
  Sntp_init();
  xTaskCreate(ATaskLed, "LED", 256, NULL, 2, NULL);
}

在ESP8266編譯器中編譯完成,燒寫 bin文件到 ESP8266,打開串口助手,每5秒輸出一次實時時間

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 計算機
    +關(guān)注

    關(guān)注

    19

    文章

    7616

    瀏覽量

    89932
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9619

    瀏覽量

    87086
  • NTP
    NTP
    +關(guān)注

    關(guān)注

    1

    文章

    210

    瀏覽量

    14298
  • ESP8266
    +關(guān)注

    關(guān)注

    50

    文章

    963

    瀏覽量

    46656
  • sntp
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    3771
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    ESP8266簡易WIFI天氣時鐘

    本篇介紹了http獲取網(wǎng)絡(luò)天氣的基本原理,并通過實踐,使用ESP8266網(wǎng)獲取網(wǎng)絡(luò)天氣和
    的頭像 發(fā)表于 06-06 09:31 ?7959次閱讀
    <b class='flag-5'>ESP8266</b>簡易WIFI天氣時鐘

    通過void sntp_set_system_time(sntp_time_t GMT_Time);設(shè)置后,通過什么api接口獲取本地的時間?

    _time_t GMT_Time);這個函數(shù)。按照我的理解,應(yīng)該是獲取網(wǎng)絡(luò)sntp時間后,通過void sntp_set_system_t
    發(fā)表于 07-12 07:29

    請問如何在ESP8266上使用sntp協(xié)議連接到ssl中的服務(wù)器?

    我正在使用帶有 C 語言的 esp-open-sdk 的ESP8266。 我嘗試使用此代碼來獲取時間戳,但每次都失敗 - 我只得到 0 : snt
    發(fā)表于 07-19 07:30

    請問STM32+ESP8266如何獲取網(wǎng)絡(luò)時間

    請問STM32+ESP8266如何獲取網(wǎng)絡(luò)時間?
    發(fā)表于 01-19 06:15

    ESP8266獲取網(wǎng)絡(luò)時間的方法

    ESP8266獲取網(wǎng)絡(luò)時間1、注意事項:本文用到了我自己的阿里云服務(wù)器,請各位使用的時候頻率稍微低一點,不然壓力很大哈。2、登錄可以用esp8266
    發(fā)表于 01-25 07:17

    ESP8266使用AT指令獲取網(wǎng)絡(luò)時間的步驟

    再優(yōu)化一下,恰巧有一個正在吃灰的裝了AT固件庫的esp8266,可以讓stm32去獲取網(wǎng)絡(luò)時鐘從而校正本地時間。網(wǎng)絡(luò)時鐘用淘寶的API,它返
    發(fā)表于 08-26 15:27

    ESP8266的基礎(chǔ)知識,怎么獲取網(wǎng)絡(luò)同步時間(北京時間

    要想獲取網(wǎng)絡(luò)時間首先要有提供網(wǎng)絡(luò)時間的網(wǎng)站,免費提供網(wǎng)絡(luò)時間
    的頭像 發(fā)表于 05-09 14:33 ?6.4w次閱讀
    <b class='flag-5'>ESP8266</b>的基礎(chǔ)知識,怎么<b class='flag-5'>獲取</b><b class='flag-5'>網(wǎng)絡(luò)</b>同步<b class='flag-5'>時間</b>(北京<b class='flag-5'>時間</b>)

    基于ESP8266網(wǎng)絡(luò)授時的時鐘源代碼免費下載

    本文檔的主要內(nèi)容詳細介紹的是基于ESP8266網(wǎng)絡(luò)授時的時鐘源代碼免費下載。
    發(fā)表于 09-21 08:00 ?28次下載
    基于<b class='flag-5'>ESP8266</b><b class='flag-5'>網(wǎng)絡(luò)</b>授時的時鐘源代碼免費下載

    使用STM32和ESP8266獲取網(wǎng)絡(luò)天氣的源代碼程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用STM32和ESP8266獲取網(wǎng)絡(luò)天氣的源代碼程序免費下載。
    發(fā)表于 01-18 08:00 ?12次下載
    使用STM32和<b class='flag-5'>ESP8266</b><b class='flag-5'>獲取</b><b class='flag-5'>網(wǎng)絡(luò)</b>天氣的源代碼程序免費下載

    正點原子ESP8266獲取網(wǎng)絡(luò)天氣適配戰(zhàn)艦V3

    正點原子ESP8266獲取網(wǎng)絡(luò)天氣適配戰(zhàn)艦V3
    發(fā)表于 04-06 14:36 ?55次下載
    正點原子<b class='flag-5'>ESP8266</b><b class='flag-5'>獲取</b><b class='flag-5'>網(wǎng)絡(luò)</b>天氣適配戰(zhàn)艦V3

    基于STM32的ESP8266天氣時鐘(2)--------MCU獲取天氣數(shù)據(jù)

    stm32通過ESP8266模塊獲取天氣,時間
    發(fā)表于 11-18 18:36 ?39次下載
    基于STM32的<b class='flag-5'>ESP8266</b>天氣時鐘(2)--------MCU<b class='flag-5'>獲取</b>天氣數(shù)據(jù)

    ESP8266獲取網(wǎng)絡(luò)時間獲取天氣

    ESP8266獲取網(wǎng)絡(luò)時間1、注意事項:本文用到了我自己的阿里云服務(wù)器,請各位使用的時候頻率稍微低一點,不然壓力很大哈。2、登錄可以用esp8266
    發(fā)表于 11-30 16:21 ?12次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>獲取</b><b class='flag-5'>網(wǎng)絡(luò)</b><b class='flag-5'>時間</b>、<b class='flag-5'>獲取</b>天氣

    ESP8266通過MQTT協(xié)議連接ONENET

    將介紹通過MQTT協(xié)議連接ONENET,實現(xiàn)ESP8266與ONENET平臺數(shù)據(jù)交互一、設(shè)計目標實現(xiàn)ESP8266通過MQTT協(xié)議連接ONENET實現(xiàn)DHT11溫濕度數(shù)據(jù)的
    發(fā)表于 01-12 19:58 ?54次下載
    <b class='flag-5'>ESP8266</b>通過MQTT<b class='flag-5'>協(xié)議</b>連接ONENET

    使用Arduino IDE創(chuàng)建ESP8266網(wǎng)絡(luò)服務(wù)器

    電子發(fā)燒友網(wǎng)站提供《使用Arduino IDE創(chuàng)建ESP8266網(wǎng)絡(luò)服務(wù)器.zip》資料免費下載
    發(fā)表于 02-02 16:58 ?1次下載
    使用Arduino IDE創(chuàng)建<b class='flag-5'>ESP8266</b><b class='flag-5'>網(wǎng)絡(luò)</b>服務(wù)器

    ESP8266網(wǎng)絡(luò)天氣時鐘OLED顯示

    基于ESP8266實現(xiàn)網(wǎng)絡(luò)獲取天氣和時鐘并OLED顯示
    的頭像 發(fā)表于 06-28 04:46 ?1973次閱讀
    <b class='flag-5'>ESP8266</b><b class='flag-5'>網(wǎng)絡(luò)</b>天氣時鐘OLED顯示