收藏官网首页
查看: 21631|回复: 128

[经验分享] MCU请求网络时间例程

 
发表于 2016-11-22 19:45:25 | 显示全部楼层 |阅读模式
校园创客福利
本帖最后由 bigfanofloT 于 2016-11-22 19:55 编辑

本期为大家带来MCU请求网络时间的方法,前期例程http://club.gizwits.com/thread-4032-1-1.html是手机APP远程控制STM32底板gokit2的4个LED,我们在此基础上添加同步网络时间方法。云端数据点:

云端数据点

云端数据点


在开发向导下载串口通信协议,找到4.13,MCU请求获取网络时间:

机智云串口协议文档

机智云串口协议文档

可以看出MCU发出的命令码是0x17,WIFI模组回复的命令码是0x18.
下面开始增加同步网络时间方法:
step1:在gizwits_protocol.h的PROTOCOL_CMDTYPE结构体添加2个命令码:

源码

源码

step2:在gizwits_protocol.c文件里编写一个获取网络时间的API,即发送命令码0x17;

源码

源码

step3:在gizwits_protocol.h文件**一下定义的获取网络时间API,另外**一个结构体用来保存时间:年、月、日、时、分、秒;

源码

源码

step4:在gizwits_protocol.c里面的int32_t gizwitsHandle(dataPoint_t *currentData)函数里面添加以下代码,即WIFI模组返回时间后,就读取时间;在函数体外面定义一下用来保存时间的结构体mytime;

源码

源码

源码

源码

step5:最后在main.c的userhandle里面添加打印日期的代码,这里1s打印一次便于观察;

源码

源码


最后烧录好用串口调试助手看是酱紫的:

源码

源码




这里只是演示了MCU获取时间的方法,在上电未连接服务器时获取的时间是有误的,具体需要根据实际修改,比如判断连接服务器后才获取时间。
附件:
1.完整keil工程源码:
游客,如果您要查看本帖隐藏内容请回复

2.本例程的串口通信协议文档:
GokitMultiLEDs-机智云接入串口通信协议文档.pdf (123.7 KB, 下载次数: 204)
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

0

主题

7

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2016-11-26 12:58:15 | 显示全部楼层
本帖最后由 kentleo 于 2016-11-26 13:46 编辑

按教程《3分钟教你使用STM32CubeMX配置工程并移植机智云生成的协议》以及本文指导移植,数据点配置了三个led开关。当不操作app的led开关时,时间获取正常。但一旦操作app控制led亮灭,时间信息就卡死在WiFi2mcu这个节点上,之后不断输出的就是卡死当时的时间内容。
请教可能发生这个问题的原因。(没有使用os)
以下内容是log输出的内容。
其中flag是判断是否连接网络成功的标志。

Get One Packet!
WiFi2MCU[61495:  20]: ff ff 00 10 18 2e 00 00 07 e0 0b 1a 0d 12 25 58 39 1b 2d 7f
MCU2WiFi[62403:   9]: ff ff 00 05 17 2f 00 00 4b

**当前时间为2016 年 11 月 26 日  13 时 18 分 37 秒**

flag [1]
Get One Packet!
WiFi2MCU[62527:  20]: ff ff 00 10 18 2f 00 00 07 e0 0b 1a 0d 12 26 58 39 1b 2e 82
MCU2WiFi[63435:   9]: ff ff 00 05 17 30 00 00 4c

**当前时间为2016 年11 月 26 日  13 时 18 分38 秒**

flag [1]
Get One Packet!
WiFi2MCU[63559:  20]: ff ff 00 10 18 30 00 00 07 e0 0b 1a 0d 12 27 58 39 1b 2f 85
MCU2WiFi[64467:   9]: ff ff 00 05 17 31 00 00 4d

**当前时间为2016 年11 月 26 日  13 时 18 分 39 秒**

flag [1]
Get One Packet!
WiFi2MCU[64591:  20]: ff ff 00 10 18 31 00 00 07 e0 0b 1a 0d 12 28 58 39 1b 30 88
MCU2WiFi[65499:   9]: ff ff 00 05 17 32 00 00 4e

**当前时间为2016 年11 月 26 日  13 时 18 分 40 秒**


flag [1]
Get One Packet!
WiFi2MCU[65523:  12]: ff ff 00 08 03 0a 00 00 01 02 00 18
MCU2WiFi[65529:   9]: ff ff 00 05 04 0a 00 00 13
Evt: EVENT_CH2RELATER 0
valueCH2Relater Changed
changed, report data
MCU2WiFi[65551:  20]: ff ff 00 10 05 33 00 00 04 00 00 00 00 00 00 00 00 00 00 4c
MCU2WiFi[66580:   9]: ff ff 00 05 17 34 00 00 50


**当前时间为2016 年 11 月 26 日  13 时 18 分 40 秒**

flag [1]
MCU2WiFi[67602:   9]: ff ff 00 05 17 35 00 00 51

**当前时间为2016 年11 月 26 日  13 时 18 分 40 秒**

flag [1]
MCU2WiFi[68624:   9]: ff ff 00 05 17 36 00 00 52

**当前时间为2016 年 11 月 26 日  13 时 18 分 40 秒**

点评

卡死很有可能是堆栈不足  详情 回复 发表于 2017-2-9 15:23

2

主题

140

帖子

897

积分

高级会员

Rank: 4

积分
897
发表于 2017-1-14 17:00:33 | 显示全部楼层
楼主!从论坛下载最新版的微信宠物屋工程文件(.HEX除外)是不是相当于一个空壳子来的?也就是说用户如果要想控制LED0到LED4、电机正反转、彩色灯、温湿度等,还要用户自己修改代码,是不是这样理解的?因为我烧写宠物屋文件夹里面自带的hex文件给gokit可以用手机控制。但是如果我用keil5软件打开“gokit_mcu_stm32”工程,然后编译生成新的hex,然后把这个新的hex烧写进去后,发现手机可以发现设备,但是手机无法连接上设备。。。什么问题

点评

控制底板LED0~4的话当然需要自己添加mcu底层驱动代码,并且云端数据点也要对应添加,参见我发过的控制gokot上4个LED的例程  详情 回复 发表于 2017-2-9 15:19
微信宠物屋源码包含了gokit扩展板上面的外设的驱动,可以对其进行控制,需要注意的是,如果自己编译,需要先自己创建一个模板产品,拷贝PK码,可参见我发过的使用指南  详情 回复 发表于 2017-2-9 15:16

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2017-8-15 17:47:04 | 显示全部楼层
et One Packet!
****my time is:2017:8:15:17:44:53******
Get One Packet!
****my time is:2017:8:15:17:44:53******
Get One Packet!
****my time is:2017:8:15:17:44:53******
Get One Packet!
****my time is:2017:8:15:17:44:53******
Get One Packet!
****my time is:2017:8:15:17:44:53******
Get One Packet!
****my time is:2017:8:15:17:44:53******
Get One Packet!
为什么我的时间一直不变化啊!

5

主题

85

帖子

1792

积分

金牌会员

Rank: 6Rank: 6

积分
1792
发表于 2016-11-22 20:19:38 | 显示全部楼层
免费使用STM32、APP自动代码生成工具
占沙发,,,马上试一下
知行合一

3

主题

8

帖子

225

积分

中级会员

Rank: 3Rank: 3

积分
225
发表于 2016-11-23 08:20:28 | 显示全部楼层
学习学习,感谢大神的案例。

9

主题

26

帖子

966

积分

高级会员

Rank: 4

积分
966
发表于 2016-11-23 11:54:23 | 显示全部楼层
我的课题正好需要这个MCU求网络时间.....

0

主题

25

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
发表于 2016-11-25 07:26:19 来自手机 | 显示全部楼层
好详细的教程 领教了

0

主题

3

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2016-11-25 10:50:27 | 显示全部楼层
教您5分钟接入机智云,实现傻瓜式开发
谢谢 正想搞网络时间

0

主题

7

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2016-11-25 16:40:05 | 显示全部楼层
本帖最后由 kentleo 于 2016-11-25 16:41 编辑

stm32 cubemx freertos工程,三个任务。1、gizwitsHandle;2、获取传感器数据,并放入datapoint;3、楼主获取时间任务。
目前问题是,任务执行数秒到数十秒后,获取数据失败,时钟停止更新,远端app控制同时失败。
在uartWrite函数中加入信号量保护,依然无解。
请教解决思路。多谢
另外,在没有加入时间获取功能前,系统也出现运行一段时间后远端数据无法传入WiFi模块。
很奇怪。

点评

看看是不是堆栈不足引起的  详情 回复 发表于 2017-2-9 15:22
 楼主| 发表于 2016-11-25 16:47:07 | 显示全部楼层
kentleo 发表于 2016-11-25 16:40
stm32 cubemx freertos工程,三个任务。1、gizwitsHandle;2、获取传感器数据,并放入datapoint;3、楼主获 ...

不熟悉OS的话,就不要用
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

3

主题

38

帖子

550

积分

高级会员

Rank: 4

积分
550
发表于 2016-11-26 10:36:47 | 显示全部楼层
高手高手,高高手
 楼主| 发表于 2016-11-26 13:54:01 | 显示全部楼层
kentleo 发表于 2016-11-26 12:58
按教程《3分钟教你使用STM32CubeMX配置工程并移植机智云生成的协议》以及本文指导移植,数据点配置了三个le ...

HAL库UART发送数据函数有超时,把那个改大点试试,另外别用中文
1、机智云QQ群:G1群:104975951 G2群:491509598 G3群:287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits、 机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息

0

主题

7

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2016-11-26 15:20:08 | 显示全部楼层
注册成为机智云开发者,手机加虚拟设备快速开发
bigfanofloT 发表于 2016-11-26 13:54
HAL库UART发送数据函数有超时,把那个改大点试试,另外别用中文

感谢楼主的提醒。问题就是出现在串口收发的问题上。目前问题已解决。多谢。

0

主题

19

帖子

598

积分

高级会员

Rank: 4

积分
598
发表于 2016-11-26 20:00:40 | 显示全部楼层
好东西0000000000000000000000

1

主题

220

帖子

1198

积分

金牌会员

Rank: 6Rank: 6

积分
1198
发表于 2016-11-28 10:36:20 | 显示全部楼层
学习学习,感谢大神的案例。

3

主题

253

帖子

432

积分

中级会员

Rank: 3Rank: 3

积分
432
发表于 2016-11-29 17:14:02 | 显示全部楼层
赞赞赞~又一学习案例~

0

主题

3

帖子

198

积分

注册会员

Rank: 2

积分
198
发表于 2016-12-5 00:07:14 | 显示全部楼层
好详细的教程 领教了

8

主题

48

帖子

1171

积分

金牌会员

Rank: 6Rank: 6

积分
1171
发表于 2016-12-5 08:07:48 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

© 2011-2017 Gizwits ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表