银尔达电子-Eric 发表于 2017-7-14 10:59:07

【GOKIT详解篇】自动生成MCU代码

本帖最后由 银尔达电子 于 2017-7-14 15:25 编辑

【GOKIT自动生成MCU代码】 :以下制作教程只供学习和DIY制作,不能用于商业用途。
作者:银尔达电子-Eric
介绍:银尔达电子专注于物联网开发套件研发和销售,提供物联网产品定制化服务!
官方淘宝:https://yinerda.taobao.com

一:创建新产品
1,在机智云后台(http://dev.gizwits.com)新建一个产品【微信宠物屋】,可自定义,APP上显示的名称。
                              二:自定义数据点
1,在数据点下的管理选择产品数据点模板

2,选择GoKit Demo 点击应用此模板

三:机智云后台生成MCU代码
1,点击新建项目【微信宠物屋】——服务——MCU开发,选择独立MCU代码,硬件平台选择STM32F103C8X,复制基本信息里的ProductKey填入,点击生成代码包。
2,MCU代码生成后,点击下载,并用Keil MDK打开工程文件,设置下工程(不会的话可以参考工程设置),然后把代码下载到开发板上,按照出厂例程步骤配置,看下演示效果。

3,按照配置步骤配置,发现配置成功,并能成功进入控制界面,但不管按哪个控制按键设备都没有反应。
4,普及下自动工具只是把云端与信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的API。
5,我们需要写好底层驱动代码,然后调用API接口就可以实现控制了。

三: 移植驱动代码
1,我们现在写的是微信宠物屋,那我们直接拷贝官方提供的外设驱动到工程就好
   方式一:直接下载官方的微信宠物屋源码,把驱动文件复制到我们自动生成代码目录下;
   方式二:直接在我们云盘下载驱动程序,路径(物联网开发板>STM32版本Gokit>rogram>出厂程序>HalDriver)然后复制到自动生成代码目录下。
2,机智云链接:http://dev.gizwits.com/zh-cn/developer/resource/hardware?type=GoKit
   银尔达云盘链接:http://www.yinerda.com/newsdetail.aspx?id=1
3,默认自动生成代码的Hal文档下只有三个驱动
   
4,复制以下驱动到Hal目录下

5,打开Keli MDK工程,在Hal目录下右键选择Add Existing Files to Group Hal添加。


四:只读数据点API接口调用
1,添加只读数据点,像传感器数据采集,在新建的个人项目>数据点那里可以看到有“环境温度,环境湿度,红外探测”,这三个数据点是可读的,那这里我们先来添加这三个数据点。
2,添加驱动头文件。并且定义2个全局变量来保存读取的温湿度数据。

3,用户初始化函数,把用户驱动的初始化添加到这里。

4,用户数据处理接口,把温湿度的读取放到这里,并且填充数据结构以达到上报目的。这里注意加了一个延时函数,目的是不让温湿度传感器读取过快。

5,我们在按键处理这里添加两个指示,因为生成的测试手机APP在配置入网时会有提示,这个不是必须的。如何触发配置入网模式?采用什么模式完全由用户代码决定,这里是为了配合测试对APP的提示。

6,下面是主函数,完全不需要用户修改。

7,MCU工程弄好后,编译并下载,这里不再赘述。
8,然后我们插上USB线连接电脑,打开串口调试助手可以看到调试信息;9,一切就绪后,长按KEY2 2S进行配置连接路由器,我们使用的触发配置入网方式为长按KEY2,AirLink方式,当然用户可以自定义触发方式和配置方式。
10,烧录进去配置后发现温湿度值在APP上可以显示出来,并且红外感应也正常上报,证明可读数据点MCU程序修改成功,没成功的小伙伴可重复看下上面步骤,好了,我们接下来讲解可写数据点是怎么处理的。

五:可写数据点API接口调用
1,添加驱动头文件
      
2,打开gizwits_product.c文件,在这里面添加数据点事件处理逻辑,调用外设API接口

3,功能实现


4,Main.c函数中添加电机初始化

5,这里你们可能发现这里添加了一个电机状态初始化,这里是把电机状态置为0,上电电机不会转。
   在gizwits_protocol.h添加一个define定义。

6,MCU工程弄好后,编译并下载,这里不再赘述。
7, WIFI模块上一步有配置入网,接下来我们可以省下这步,直接打开APP进行控制。原因是我们只更新了MCU程序,WIFI固件      没有作任何更改。
8,这里可以发现微信宠物屋功能全部都已实现。
   至此自动生成MCU代码讲解完毕。



六:配套程序下载





页: [1]
查看完整版本: 【GOKIT详解篇】自动生成MCU代码