bigfanofloT 发表于 2016-11-22 19:45:25

MCU请求网络时间例程

本帖最后由 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打印一次便于观察;


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


http://player.youku.com/player.php/sid/XMTgzMDU5MzExNg==/v.swf

这里只是演示了MCU获取时间的方法,在上电未连接服务器时获取的时间是有误的,具体需要根据实际修改,比如判断连接服务器后才获取时间。
附件:
1.完整keil工程源码:
**** Hidden Message *****
2.本例程的串口通信协议文档:

3.测试手机APP:




kentleo 发表于 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: ff ff 00 10 18 2e 00 00 07 e0 0b 1a 0d 12 25 58 39 1b 2d 7f
MCU2WiFi: ff ff 00 05 17 2f 00 00 4b

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

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

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

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

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

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

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

flag
Get One Packet!
WiFi2MCU: ff ff 00 08 03 0a 00 00 01 02 00 18
MCU2WiFi: ff ff 00 05 04 0a 00 00 13
Evt: EVENT_CH2RELATER 0
valueCH2Relater Changed
changed, report data
MCU2WiFi: ff ff 00 10 05 33 00 00 04 00 00 00 00 00 00 00 00 00 00 4c
MCU2WiFi: ff ff 00 05 17 34 00 00 50

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

flag
MCU2WiFi: ff ff 00 05 17 35 00 00 51

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

flag
MCU2WiFi: ff ff 00 05 17 36 00 00 52

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

tianzuoan 发表于 2017-1-14 17:00:33

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

chunxiayiyun 发表于 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!
为什么我的时间一直不变化啊!

许许 发表于 2016-11-22 20:19:38

占沙发,,,马上试一下

晓林华 发表于 2016-11-23 08:20:28

学习学习,感谢大神的案例。

山之晓 发表于 2016-11-23 08:39:15

学习一下

wzl 发表于 2016-11-23 11:54:23

我的课题正好需要这个MCU求网络时间.....

CC3200_初学者 发表于 2016-11-25 07:26:19

好详细的教程 领教了

GARY0711 发表于 2016-11-25 10:50:27

谢谢 正想搞网络时间

kentleo 发表于 2016-11-25 16:40:05

本帖最后由 kentleo 于 2016-11-25 16:41 编辑

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

bigfanofloT 发表于 2016-11-25 16:47:07

kentleo 发表于 2016-11-25 16:40
stm32 cubemx freertos工程,三个任务。1、gizwitsHandle;2、获取传感器数据,并放入datapoint;3、楼主获 ...

不熟悉OS的话,就不要用

anymax 发表于 2016-11-26 10:36:47

高手高手,高高手

bigfanofloT 发表于 2016-11-26 13:54:01

kentleo 发表于 2016-11-26 12:58
按教程《3分钟教你使用STM32CubeMX配置工程并移植机智云生成的协议》以及本文指导移植,数据点配置了三个le ...

HAL库UART发送数据函数有超时,把那个改大点试试,另外别用中文

kentleo 发表于 2016-11-26 15:20:08

bigfanofloT 发表于 2016-11-26 13:54
HAL库UART发送数据函数有超时,把那个改大点试试,另外别用中文

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

相识机智云 发表于 2016-11-26 20:00:40

好东西0000000000000000000000

Lin 发表于 2016-11-28 10:36:20

学习学习,感谢大神的案例。:lol

地方 发表于 2016-11-29 17:14:02

赞赞赞~又一学习案例~

桂七 发表于 2016-12-3 12:33:48

正想要的

shsxg 发表于 2016-12-4 16:56:20

学习了。

feng5200 发表于 2016-12-5 00:07:14

好详细的教程 领教了

沉睡中的king 发表于 2016-12-5 08:07:48

顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: MCU请求网络时间例程