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

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

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

STM32連接機(jī)智云,代碼移植,NTP實(shí)時(shí)時(shí)間獲?。ǘ?/h1>

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


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

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

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

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


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


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

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

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


//定時(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 更新中斷標(biāo)志 gizTimerMs();//系統(tǒng)毫秒定時(shí) }}復(fù)制代碼


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


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

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



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

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


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

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

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

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

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


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

三、配對(duì)連接
打開機(jī)智云APP,按圖片順序來

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



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


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

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


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

u8 wifi_sta;復(fù)制代碼


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

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

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


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


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

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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2290

    文章

    11018

    瀏覽量

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

    關(guān)注

    30

    文章

    4891

    瀏覽量

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

    關(guān)注

    1

    文章

    220

    瀏覽量

    14360
  • 機(jī)智云
    +關(guān)注

    關(guān)注

    3

    文章

    609

    瀏覽量

    26750
收藏 人收藏

    評(píng)論

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

    STM32CubeMX移植機(jī)智自動(dòng)生成代碼詳解

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

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

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

    基于STM32機(jī)智IoT服務(wù)平臺(tái)的智能花盆

    基本完成為了提高連接機(jī)智的成功率建議在gizwits_protocol.h修改重次數(shù)和超時(shí)時(shí)間六、測(cè)試為啥我把它焊接成這個(gè)樣子呢,因?yàn)槲冶緛泶蛩憬o他做一個(gè)外殼的...然后把它放到懶
    發(fā)表于 05-14 15:28

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

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

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

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

    移植機(jī)智代碼STM32F103

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

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

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

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

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

    機(jī)智官方生成的MCU代碼(hal庫)移植STM32標(biāo)準(zhǔn)庫教程

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

    STM32連接機(jī)智(踩雷日記)

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

    基于stm32連接機(jī)智教程

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

    基于機(jī)智移植STM32L496G代碼移植

    前言最近我拿到了STM32L496AGMCU,發(fā)現(xiàn)其擴(kuò)展版可以連接ESP-01S。我想嘗試將開發(fā)板連接到我們的機(jī)智上,并根據(jù)
    的頭像 發(fā)表于 09-20 08:05 ?1054次閱讀
    基于<b class='flag-5'>機(jī)智</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連接機(jī)智,代碼移植NTP實(shí)時(shí)時(shí)間獲取(一)

    目錄一、機(jī)智介紹、固件下載三、項(xiàng)目例程下載四、代碼移植五、代碼編寫準(zhǔn)備(已配置完畢,正式開始
    的頭像 發(fā)表于 11-19 01:01 ?1051次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>連接機(jī)智</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'>實(shí)時(shí)時(shí)間</b><b class='flag-5'>獲取</b>(一)

    STM32機(jī)智連接實(shí)現(xiàn)步驟與技巧(下篇):機(jī)智代碼移植與優(yōu)化

    在《STM32機(jī)智連接實(shí)現(xiàn)步驟與技巧(上篇)》中,我們介紹了硬件連接和通信協(xié)議配置。本篇將重點(diǎn)講解如何將
    的頭像 發(fā)表于 05-23 18:10 ?176次閱讀
    <b class='flag-5'>STM32</b>與<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>連接</b>實(shí)現(xiàn)步驟與技巧(下篇):<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>代碼</b><b class='flag-5'>移植</b>與優(yōu)化

    基于STM32 HAL庫與標(biāo)準(zhǔn)庫的esp8266接入機(jī)智方案(

    在《基于STM32HAL庫與標(biāo)準(zhǔn)庫的esp8266接入機(jī)智方案(一)》中,我們?cè)敿?xì)介紹了硬件連接機(jī)智
    的頭像 發(fā)表于 05-28 18:02 ?263次閱讀
    基于<b class='flag-5'>STM32</b> HAL庫與標(biāo)準(zhǔn)庫的esp8266接入<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b>方案(<b class='flag-5'>二</b>)

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品