0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32连接机智云,代码移植,NTP实时时间获取(二)

机智云 2024-11-20 01:02 次阅读

STM32机智云连接实现(第二篇)—NTP实时时间获取与设备配对
在上一篇文章中,我们介绍了如何将STM32与机智云进行连接,并成功实现了基础的通信功能。在本篇文章中,我们将继续深入,重点讲解如何利用NTP(网络时间协议)获取精确的实时时间,并将其集成到我们的STM32应用中。


本文将涵盖以下几个方面:
1.代码编写准备:我们将分析所需的开发环境配置、库文件和工具链,确保您的开发环境为后续编程做好充分准备。
2.设备配对与连接:详细讲解如何通过机智云平台完成设备的注册、配对以及与STM32的无线连接配置。
3.NTP时间同步:介绍如何在STM32上通过NTP协议实现实时时间同步,确保您的设备能够获取到准确的时间信息
4.网盘资料下载:为了让您能够快速上手,本文还会提供相关的代码示例和工程文件下载链接。

请继续关注本系列文章,接下来我们将逐步展开,带您实现STM32与机智云的全面互联互通。

一、接下来是配置主函数main.c这个文件
(1)首先将机智云,添加的串口,定时器头文件说明一下

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


(2)在main.c中添加Gizwits_Init函数,对机智云需用到功能进行初始化。()


19b4ae80-a698-11ef-8084-92fbcf53809c.png
(3)在mai函数中对用到的函数进行初始化,串口1是用来打印机智云信息的,可以用串口1查看是否与机智云连接成功。

19c279de-a698-11ef-8084-92fbcf53809c.png
(4)在main.c文件末尾需要添加定时器3的中断函数,并将机智云的1ms计时函数加进去,但是需要先将机智云1ms函数定义,才能用得到,在gizwits_product.h文件中进行定义,如图。

19e32d1e-a698-11ef-8084-92fbcf53809c.png
然后在main.c文件中添加定时器3的中断函数


//定时器 3 中断服务程序 1ms中断void TIM3_IRQHandler(void) //TIM3 中断{ if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查 TIM3 更新中断发生与否 { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除 TIMx 更新中断标志 gizTimerMs();//系统毫秒定时 }}复制代码


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


(5)将这两个函数放到主循环中,机智云才能一直获取数据

userHandle();//用户采集 gizwitsHandle((dataPoint_t *)¤tDataPoint);//协议处理复制代码



1a1f56d6-a698-11ef-8084-92fbcf53809c.png
(6)配对时需要做个按键,按键按下的时候发送配对指令,让wifi模块进入AirLink连接模式。将下面这两句话加入按键判断中就行了。

gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入 复制代码


1a350b3e-a698-11ef-8084-92fbcf53809c.png
(7)最后有的小伙伴会用到[color=rgb(78, 161, 219) !important]printf函数,使用这个函数在设置里需要勾选图中选项哦,不然没办法使用。

二、现在通过第五点配置好了,现在开始正式写代码,嘿嘿~~
1.写了那么多简单介绍下使用到的机智云函数

userHandle函数,是用户在机智云官网定义的一些只读的数据点,将里面的注释解开,将自己想要上传的值幅值进去就行了,例如下图,红框中的是你在机智云官网中创建项目时自己定义的变量,需要自己记住,不要在这懵逼了,等号右边是自己软件软件获取的值。

1a3f60e8-a698-11ef-8084-92fbcf53809c.png
userInit函数是对机智云APP中的值做个初始化,这函数不操作也可以。

gizwitsEventProcess函数是你有添加布尔值的就在这找,里面有些user handle的就是用户编写代码的地方。用if else对布尔值0,1,两个状态的判断,自己根据需求写就行了。


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

三、配对连接
打开机智云APP,按图片顺序来

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



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


到这一步先不要点完成上述操作,先按一下设计的进入配对模式的按键,可以通过串口一看到进入成功的话会发一条进入ARLINK配对信息。在点完成上述操作,然后就是等待配对成功,配对完成后回调到主界面,显示自己的设备。设备变灰色就是断开连接。

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


四、NTP(网络获取实时时间)的实现
顺带讲下用机智云获取NTP实时时间的操作吧
(1)首先定义一个全局变量并引用OLED的头文件

u8 wifi_sta;复制代码


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

(2)在userHandle函数中加入这段代码若是网络连接成功就多次请求NTP网络时间,记得网络时间获取不要那么快哦,

static u16 t=0; if(wifi_sta) { t++; if(t==500) { t=0; gizwitsGetNTP();//请求 NTP 网络时间 } }else { if(t!=0) t=0; }复制代码


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


(3)在gizwits_product.c文件中找到gizwitsEventProcess函数,在switch里找到图中红框标注的位置将下面代码幅值进去,最终效果如红框标注.CASE语句中WIFI_NTP所打印的内容就是网络时间,将他们复制到自己的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;复制代码


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


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354679
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68319
  • NTP
    NTP
    +关注

    关注

    1

    文章

    157

    浏览量

    13879
  • 机智云
    +关注

    关注

    2

    文章

    579

    浏览量

    26367
收藏 人收藏

    评论

    相关推荐

    【阿波罗STM32F767试用体验】STM32F767三分钟连接机智硬件平台(附资料)

    :现在机智可以很方便的生成代码,包括正点原子全系列开发板:下面是直接生成的STM32F767开发板的代码下载就可以应用,可惜试了几次都是这
    发表于 09-29 08:43

    STM32CubeMX移植机智自动生成代码详解

    ,使用的是STM32L496ZGT6作为主控,具有超低功耗、丰富外设等特性。)我们可以通过机智自动生成工具生成STM32F103平台的工程源码(详情查看文档:GoKit3
    发表于 12-28 13:50

    战舰使用esp8266连接机智显示配网超时

    原子哥,我今天用战舰连接机智遇到了一些问题..按照教程使用,创建了数据点,也有app了,但是在用手机连接的时候,连接不成功,显示配网超时.(手机
    发表于 04-10 22:14

    基于STM32机智IoT服务平台的智能花盆

    基本完成为了提高连接机智的成功率建议在gizwits_protocol.h修改重次数和超时时间六、测试为啥我把它焊接成这个样子呢,因为我本来打算给他做一个外壳的...然后把它放到懒
    发表于 05-14 15:28

    用什么函数,可以获取NTP网络时间

    用什么函数,可以获取NTP网络时间 摘要:在机智自助开发平台开发一款智能设备有很多在线工具快速实现,若需要
    发表于 08-27 08:25

    在线课程|直播课:机智智能红外体温计方案实战开发

    机智代码(控制LED灯)入门教程5:STM32F407如何通过机智
    发表于 03-03 11:57

    【开源案例】双STM32机智,一起打造“优美”的数字仪表

    获取设备的信息以及对设备进行控制。项目开源,且支持次开发。主要实现功能:产品功能:在MCU设备端,美观漂亮的温度和湿度数据的UI展示在机智云云端,实现MCU设备端连接机智
    发表于 03-24 12:42

    移植机智代码STM32F103

    移植机智代码STM32F103系列在哔站录了两期简单的视频 ,欢迎大家指正不足,我也是刚
    发表于 08-03 07:46

    stm32连接机智创建

    stm32连接机智创建机智产品修改MCU代码文件给ESP8266烧写
    发表于 08-09 09:30

    基于STM32与esp8266机智app联网总结

    背景是有一个成熟的STM32机智项目代码,记录一下成功应用的过程。第一步:用ttl转u***串口给esp8266烧录机智
    发表于 04-25 13:40

    机智官方生成的MCU代码(hal库)移植STM32标准库教程

    机智官方生成的MCU代码(hal库)移植STM32标准库教程手上刚好有STM32F103VC
    发表于 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核心板或者开发板一个(板子上带有LED)网上这种便宜的ESP01S一个USB转TTL模块一个、固件烧写ESP8266烧写机智的官方固件,才能与
    发表于 12-06 09:06 1次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>连接机智</b><b class='flag-5'>云</b>(踩雷日记)

    基于stm32连接机智教程

    stm32连接机智创建机智产品修改MCU代码文件给ESP8266烧写
    发表于 12-06 19:06 10次下载
    基于<b class='flag-5'>stm32</b>的<b class='flag-5'>连接机智</b><b class='flag-5'>云</b>教程

    基于机智移植STM32L496G代码移植

    前言最近我拿到了STM32L496AGMCU,发现其扩展版可以连接ESP-01S。我想尝试将开发板连接到我们的机智上,并根据
    的头像 发表于 09-20 08:05 304次阅读
    基于<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实时时间获取(一)

    目录一、机智介绍、固件下载三、项目例程下载四、代码移植五、代码编写准备(已配置完毕,正式开始
    的头像 发表于 11-19 01:01 83次阅读
    <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>(一)