RM新时代网站-首页

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

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

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

STM32連接機智云,代碼移植,NTP實時時間獲?。ǘ?/h1>

STM32機智云連接實現(xiàn)(第二篇)—NTP實時時間獲取與設(shè)備配對
在上一篇文章中,我們介紹了如何將STM32與機智云進行連接,并成功實現(xiàn)了基礎(chǔ)的通信功能。在本篇文章中,我們將繼續(xù)深入,重點講解如何利用NTP(網(wǎng)絡(luò)時間協(xié)議)獲取精確的實時時間,并將其集成到我們的STM32應(yīng)用中。


本文將涵蓋以下幾個方面:
1.代碼編寫準備:我們將分析所需的開發(fā)環(huán)境配置、庫文件和工具鏈,確保您的開發(fā)環(huán)境為后續(xù)編程做好充分準備。
2.設(shè)備配對與連接:詳細講解如何通過機智云平臺完成設(shè)備的注冊、配對以及與STM32的無線連接配置。
3.NTP時間同步:介紹如何在STM32上通過NTP協(xié)議實現(xiàn)實時時間同步,確保您的設(shè)備能夠獲取到準確的時間信息。
4.網(wǎng)盤資料下載:為了讓您能夠快速上手,本文還會提供相關(guān)的代碼示例和工程文件下載鏈接。

請繼續(xù)關(guān)注本系列文章,接下來我們將逐步展開,帶您實現(xiàn)STM32與機智云的全面互聯(lián)互通。

一、接下來是配置主函數(shù)main.c這個文件
(1)首先將機智云,添加的串口,定時器頭文件說明一下

199b656a-a698-11ef-8084-92fbcf53809c.png


(2)在main.c中添加Gizwits_Init函數(shù),對機智云需用到功能進行初始化。()


19b4ae80-a698-11ef-8084-92fbcf53809c.png
(3)在mai函數(shù)中對用到的函數(shù)進行初始化,串口1是用來打印機智云信息的,可以用串口1查看是否與機智云連接成功。

19c279de-a698-11ef-8084-92fbcf53809c.png
(4)在main.c文件末尾需要添加定時器3的中斷函數(shù),并將機智云的1ms計時函數(shù)加進去,但是需要先將機智云1ms函數(shù)定義,才能用得到,在gizwits_product.h文件中進行定義,如圖。

19e32d1e-a698-11ef-8084-92fbcf53809c.png
然后在main.c文件中添加定時器3的中斷函數(shù)


//定時器 3 中斷服務(wù)程序 1ms中斷void TIM3_IRQHandler(void) //TIM3 中斷{ if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //檢查 TIM3 更新中斷發(fā)生與否 { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除 TIMx 更新中斷標志 gizTimerMs();//系統(tǒng)毫秒定時 }}復(fù)制代碼


19f9fc2e-a698-11ef-8084-92fbcf53809c.png


(5)將這兩個函數(shù)放到主循環(huán)中,機智云才能一直獲取數(shù)據(jù)

userHandle();//用戶采集 gizwitsHandle((dataPoint_t *)¤tDataPoint);//協(xié)議處理復(fù)制代碼



1a1f56d6-a698-11ef-8084-92fbcf53809c.png
(6)配對時需要做個按鍵,按鍵按下的時候發(fā)送配對指令,讓wifi模塊進入AirLink連接模式。將下面這兩句話加入按鍵判斷中就行了。

gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入 復(fù)制代碼


1a350b3e-a698-11ef-8084-92fbcf53809c.png
(7)最后有的小伙伴會用到[color=rgb(78, 161, 219) !important]printf函數(shù),使用這個函數(shù)在設(shè)置里需要勾選圖中選項哦,不然沒辦法使用。

二、現(xiàn)在通過第五點配置好了,現(xiàn)在開始正式寫代碼,嘿嘿~~
1.寫了那么多簡單介紹下使用到的機智云函數(shù)

userHandle函數(shù),是用戶在機智云官網(wǎng)定義的一些只讀的數(shù)據(jù)點,將里面的注釋解開,將自己想要上傳的值幅值進去就行了,例如下圖,紅框中的是你在機智云官網(wǎng)中創(chuàng)建項目時自己定義的變量,需要自己記住,不要在這懵逼了,等號右邊是自己軟件軟件獲取的值。

1a3f60e8-a698-11ef-8084-92fbcf53809c.png
userInit函數(shù)是對機智云APP中的值做個初始化,這函數(shù)不操作也可以。

gizwitsEventProcess函數(shù)是你有添加布爾值的就在這找,里面有些user handle的就是用戶編寫代碼的地方。用if else對布爾值0,1,兩個狀態(tài)的判斷,自己根據(jù)需求寫就行了。


1a581c6e-a698-11ef-8084-92fbcf53809c.png

三、配對連接
打開機智云APP,按圖片順序來

1a6f7724-a698-11ef-8084-92fbcf53809c.png



1a952352-a698-11ef-8084-92fbcf53809c.png


到這一步先不要點完成上述操作,先按一下設(shè)計的進入配對模式的按鍵,可以通過串口一看到進入成功的話會發(fā)一條進入ARLINK配對信息。在點完成上述操作,然后就是等待配對成功,配對完成后回調(diào)到主界面,顯示自己的設(shè)備。設(shè)備變灰色就是斷開連接。

1aabac44-a698-11ef-8084-92fbcf53809c.png


四、NTP(網(wǎng)絡(luò)獲取實時時間)的實現(xiàn)
順帶講下用機智云獲取NTP實時時間的操作吧
(1)首先定義一個全局變量并引用OLED的頭文件

u8 wifi_sta;復(fù)制代碼


1ab56aa4-a698-11ef-8084-92fbcf53809c.png

(2)在userHandle函數(shù)中加入這段代碼若是網(wǎng)絡(luò)連接成功就多次請求NTP網(wǎng)絡(luò)時間,記得網(wǎng)絡(luò)時間獲取不要那么快哦,

static u16 t=0; if(wifi_sta) { t++; if(t==500) { t=0; gizwitsGetNTP();//請求 NTP 網(wǎng)絡(luò)時間 } }else { if(t!=0) t=0; }復(fù)制代碼


1ad592ca-a698-11ef-8084-92fbcf53809c.png


(3)在gizwits_product.c文件中找到gizwitsEventProcess函數(shù),在switch里找到圖中紅框標注的位置將下面代碼幅值進去,最終效果如紅框標注.CASE語句中WIFI_NTP所打印的內(nèi)容就是網(wǎng)絡(luò)時間,將他們復(fù)制到自己的OLED顯示語句中就行了,注意哦,只有成功配對后才會顯示是時間。

case WIFI_CON_M2M: wifi_sta = 1; //wifi已連接 break; case WIFI_DISCON_M2M: wifi_sta = 0; //wifi已斷開 break; case WIFI_RSSI: GIZWITS_LOG("RSSI %d\n", wifiData->rssi); break; case TRANSPARENT_DATA: GIZWITS_LOG("TRANSPARENT_DATA \n"); //user handle , Fetch data from [data] , size is [len] break; case WIFI_NTP: GIZWITS_LOG("WIFI_NTP : [%d-%d-%d %02d:%02d:%02d][%d] \n",ptime->year, ptime->month,ptime->day,ptime->hour,ptime->minute,ptime->second,ptime->ntp); OLED_ShowNum(4,1,ptime->year,4); OLED_ShowChar(4,5,'-'); OLED_ShowNum(4,6,ptime->month,1); OLED_ShowChar(4,7,'-'); OLED_ShowNum(4,8,ptime->day,1); OLED_ShowChar(4,9,' '); OLED_ShowNum(4,10,ptime->hour,2); OLED_ShowChar(4,12,'.'); OLED_ShowNum(4,13,ptime->minute,2); break;復(fù)制代碼


1aef3e82-a698-11ef-8084-92fbcf53809c.png


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

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355722
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

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

    關(guān)注

    1

    文章

    169

    瀏覽量

    13890
  • 機智云
    +關(guān)注

    關(guān)注

    2

    文章

    587

    瀏覽量

    26392
收藏 人收藏

    評論

    相關(guān)推薦

    【阿波羅STM32F767試用體驗】STM32F767三分鐘連接機智硬件平臺(附資料)

    :現(xiàn)在機智可以很方便的生成代碼,包括正點原子全系列開發(fā)板:下面是直接生成的STM32F767開發(fā)板的代碼下載就可以應(yīng)用,可惜試了幾次都是這
    發(fā)表于 09-29 08:43

    STM32CubeMX移植機智自動生成代碼詳解

    ,使用的是STM32L496ZGT6作為主控,具有超低功耗、豐富外設(shè)等特性。)我們可以通過機智自動生成工具生成STM32F103平臺的工程源碼(詳情查看文檔:GoKit3
    發(fā)表于 12-28 13:50

    戰(zhàn)艦使用esp8266連接機智顯示配網(wǎng)超時

    原子哥,我今天用戰(zhàn)艦連接機智遇到了一些問題..按照教程使用,創(chuàng)建了數(shù)據(jù)點,也有app了,但是在用手機連接的時候,連接不成功,顯示配網(wǎng)超時.(手機
    發(fā)表于 04-10 22:14

    基于STM32機智IoT服務(wù)平臺的智能花盆

    基本完成為了提高連接機智的成功率建議在gizwits_protocol.h修改重次數(shù)和超時時間六、測試為啥我把它焊接成這個樣子呢,因為我本來打算給他做一個外殼的...然后把它放到懶
    發(fā)表于 05-14 15:28

    用什么函數(shù),可以獲取NTP網(wǎng)絡(luò)時間

    用什么函數(shù),可以獲取NTP網(wǎng)絡(luò)時間 摘要:在機智自助開發(fā)平臺開發(fā)一款智能設(shè)備有很多在線工具快速實現(xiàn),若需要
    發(fā)表于 08-27 08:25

    在線課程|直播課:機智智能紅外體溫計方案實戰(zhàn)開發(fā)

    機智代碼(控制LED燈)入門教程5:STM32F407如何通過機智
    發(fā)表于 03-03 11:57

    【開源案例】雙STM32機智,一起打造“優(yōu)美”的數(shù)字儀表

    獲取設(shè)備的信息以及對設(shè)備進行控制。項目開源,且支持次開發(fā)。主要實現(xiàn)功能:產(chǎn)品功能:在MCU設(shè)備端,美觀漂亮的溫度和濕度數(shù)據(jù)的UI展示在機智云云端,實現(xiàn)MCU設(shè)備端連接機智
    發(fā)表于 03-24 12:42

    移植機智代碼STM32F103

    移植機智代碼STM32F103系列在嗶站錄了兩期簡單的視頻 ,歡迎大家指正不足,我也是剛
    發(fā)表于 08-03 07:46

    stm32連接機智創(chuàng)建

    stm32連接機智創(chuàng)建機智產(chǎn)品修改MCU代碼文件給ESP8266燒寫
    發(fā)表于 08-09 09:30

    基于STM32與esp8266機智app聯(lián)網(wǎng)總結(jié)

    背景是有一個成熟的STM32機智項目代碼,記錄一下成功應(yīng)用的過程。第一步:用ttl轉(zhuǎn)u***串口給esp8266燒錄機智
    發(fā)表于 04-25 13:40

    機智官方生成的MCU代碼(hal庫)移植STM32標準庫教程

    機智官方生成的MCU代碼(hal庫)移植STM32標準庫教程手上剛好有STM32F103VC
    發(fā)表于 11-06 09:51 ?15次下載
    <b class='flag-5'>機智</b><b class='flag-5'>云</b>官方生成的MCU<b class='flag-5'>代碼</b>(hal庫)<b class='flag-5'>移植</b>為<b class='flag-5'>STM32</b>標準庫教程

    STM32連接機智(踩雷日記)

    STM32核心板或者開發(fā)板一個(板子上帶有LED)網(wǎng)上這種便宜的ESP01S一個USB轉(zhuǎn)TTL模塊一個、固件燒寫ESP8266燒寫機智的官方固件,才能與
    發(fā)表于 12-06 09:06 ?1次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>連接機智</b><b class='flag-5'>云</b>(踩雷日記)

    基于stm32連接機智教程

    stm32連接機智創(chuàng)建機智產(chǎn)品修改MCU代碼文件給ESP8266燒寫
    發(fā)表于 12-06 19:06 ?10次下載
    基于<b class='flag-5'>stm32</b>的<b class='flag-5'>連接機智</b><b class='flag-5'>云</b>教程

    基于機智移植STM32L496G代碼移植

    前言最近我拿到了STM32L496AGMCU,發(fā)現(xiàn)其擴展版可以連接ESP-01S。我想嘗試將開發(fā)板連接到我們的機智上,并根據(jù)
    的頭像 發(fā)表于 09-20 08:05 ?395次閱讀
    基于<b class='flag-5'>機智</b><b class='flag-5'>云</b><b class='flag-5'>移植</b><b class='flag-5'>STM32</b>L496G<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>

    STM32連接機智代碼移植,NTP實時時間獲取(一)

    目錄一、機智介紹、固件下載三、項目例程下載四、代碼移植五、代碼編寫準備(已配置完畢,正式開始
    的頭像 發(fā)表于 11-19 01:01 ?280次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>連接機智</b><b class='flag-5'>云</b>,<b class='flag-5'>代碼</b><b class='flag-5'>移植</b>,<b class='flag-5'>NTP</b><b class='flag-5'>實時時間</b><b class='flag-5'>獲取</b>(一)

    RM新时代网站-首页