[资料] 独立MCU方案接入机智云-2
952 查看
0 回复
 楼主 | 发布于 2017-10-19 | 只看楼主
分享到:

智能灯MCU开发

1.自动生成MCU SDK

自动生成的MCU SDK代码实现了机智云通信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的 API。当设备收到云端或 APP 端的数据后,程序会将数据转换成对应的事件并通知到应用层,开发者只需要在对应的事件处理逻辑中添加传感器的控制函数,便可完成产品的开发。这里选择独立MCU方案、硬件平台STM32f103c8x后,机智云直接生成适应STM32f103c8x的工程代码。

自动生成MCU SDK-1

自动生成MCU SDK-2

自动生成MCU SDK-3

GoKit的RGB_LED

2.MCU SDK文件内容目录结构

如下图,其中黑色标注部分为STM32f103cx8硬件平台开发基本文件。绿色标注部分为机智云逻辑部分,硬件的串口驱动、定时器驱动、按键驱动等驱动实现完毕,开发者可直接在Gizwits_product.c&Gizwits_product.h文件编写硬件动作执行函数。

MCU SDK文件内容目录结构

其中主要文件说明:

文件 说明
Gizwits_product.c 该文件为产品相关处理函数,如gizEventProcess()平台相关硬件初始化,如串口、定时器等。
Gizwits_product.h 该文件为gizwits_product.c的头文件,存放产品相关宏定义如:HARDWARE_VERSION、SOFTWARE_VERSION
Gizwits_protocol.c 该文件为SDK API接口函数定义文件
Gizwits_protocol.h 该文件为gizwits_protocol.c对应头文件,相关API的接口声明均在此文件中。

协议API介绍

API名称 API功能
Void gizwitsInit(void) gizwits 协议初始化接口。用户调用该接口可以完成 Gizwits 协议相关初始化(包括协议相关定时器、串口的初始化)。
Void gizwitsSetMode(unit8_t mode) 参数mode[in]:仅支持0,1和2,其他数据无效。参数为 0,恢复模组出厂配置接口,调用会清空所有配置参数,恢复到出厂默认配置; 参数为 1 时配置模组进入 SoftAp 模式; 参数为 2 配置模组进入 AirLink 模式。
Void gizwitsHandle(dataPoint_t *dataPoint) 参数 dataPoint[in]:用户设备数据点。该函数中完成了相应协议数据的处理即数据上报的等相关操作。
Int8_t gizwitsEventProcess(eventInfo_t *info,uint8_t *data,uint32_t len) 参数 info[in]:事件队列参数 ; data[in]:数据; 参数 len [in]:数据长度。用户数据处理函数,包括 wifi 状态更新事件和控制事件。a) Wifi 状态更新事件WIFI_开头的事件为 wifi 状态更新事件,data 参数仅在WIFI_RSSI 有效,data 值为 RSSI 值,数据类型为 uint8_t,取值范围 0~7。 b) 控制事件与数据点相关,本版本代码会打印相关事件信息,相关数值也一并打印输出,用户只需要做命令的具体执行即可。

3.开发步骤

3.1 程序主函数

位置:main.c 中 main()函数

main函数截图

相关说明:

函数 说明
SystemInit() 平台相关的硬件初始化 ==(非 MCU SDK API,不同的平台名称可能不同)==
userInit() 用户相关的初始化,如:外设驱动初始化、打印串口初始化 ==(非MCU SDK API,不同的平台名称可能不同)==
gizwitsInit() 平台、协议处理初始化,如:用户定时器初始化、协议通信串口初始化 (MCU SDK API)
userHandle() 用户事件回调函数,用户可以自定义事件在该函数中完成相应的协议处理。==(非MCU SDK API,不同的平台名称可能不同)==
gizwitsHandle() 协议相关的主函数 ==(MCU SDK API)==

3.2 移植RGB_LED驱动程序

从MCU SDK文件内容目录结构看到,自动生成MCU代码里面没有rgb_led灯驱动,我们可以去机智云官网,开发者中心,下载中心,去参考下载其他含rgb_led灯驱动的项目,把里面的rgb_led灯驱动提取出来移植,以移植微信宠物屋rgb_led灯驱动为例。

MCU SDK文件内容目录结构

下载1

下载2

我们把刚刚下载的微信宠物项目解压,进入如下目录,可以看到有个rgb_led灯驱动文件夹,把文件夹复制到自己的自动生成MCU驱动目录里面

移植1

移植2

回到我们自己MCU代码,在驱动目录里面添加rgb_led驱动文件

移植3

移植4

在main.c和gizwits_product.c文件加入#include “Hal_rgb_led/Hal_rgb_led.h”

移植5

移植6

3.4 用户程序初始化

位置:main.c 中 userInit() 函数

用户初始化函数

3.5 WiFi模块Reset/入网方式

设备需要进入配置模式才能进行联网,并与云端进行通信,MCU SDK在工程中是通过按键触发进入相应的配置模式。这里,我们简单地添加成功触发WiFi模组进入AirLink配置模式后LED灯亮起。

进入 Soft AP 模式:key2 按键短按。

 Soft AP 模式

B. 进入 AirLink 模式:key2 按键长按亮蓝blue灯。

 AirLink 模式

C. 模组复位:key1 按键长。

模组复位

3.6 处理云端/APP发送过来的控制事件。

与控制型协议相关的函数调用关系如下:

处理云端/APP发送过来的控制事件

函数调用说明:

函数 说明
protocolIssuedProcess 该函数被 gizwitsHandle 调用,接收来自云端或 app端下发的相关协议数据,==MCU SDK自处理,开发者可不关注==
ACTION_CONTROL_DEVICE 进行“控制型协议”的相关处理,==MCU SDK自处理,开发者可参考协议进一步理解==
gizDataPoint2Event 根据协议生成“控制型事件”,并进行相应数据类型的转化转换,==MCU SDK自处理,开发者可参考协议进一步理解==
gizwitsEventProcess 根据已生成的“控制型事件”进行相应处理(包括相应的驱动函数),==需开发者处理控制事件==

相关代码位置:…\Gizwits\gizwits_product.c 中 gizwitsEventProcess() 函数:

功能说明:完成写类型外设的事件处理。

相应代码:

gizwitsEventProcess() 函数1

gizwitsEventProcess() 函数2

3.7 上报设备状态

与上报型协议相关的函数调用关系如下:

上报设备状态函数调用逻辑

函数调用说明:

函数 说明
userHandle 获取用户区的上报型数据,需开发者关注
gizCheckReport 判断是否上报当前状态的数据,MCU SDK自处理,开发者可不关注
gizDataPoints2ReportData 完成用户区数据到上报型数据的转换,MCU SDK自处理,开发者可不关注
gizReportData 将转换后的上报数据通过串口发送给 WiFi 模块,MCU SDK自处理,开发者可不关注

相关代码位置: …\User\main.c 中 userHandle() 函数:
使用说明:该函数中完成了用户区上报型数据的获取。用户只需将读到的数据赋值到 用户区当前设备状态结构体即可,赋值完的数据是通过 gizwitsHandle 上报云端的,开发者不需要关注变化上报和定时上报。

上报设备状态代码

3.8 编译并将固件烧写到GoKit3代MCU主控板

调试

1. 手机安装机智云APP

安装机智云APP

2. 打开机智云APP,注册登录APP账号

注册登录APP账号

3. 配置WiFi模块入网

配置WiFi模块入网-1

配置WiFi模块入网-2

配置WiFi模块入网-3

4. 配置成功后,选择相应设备

选择相应设备

5. APP收发设备数据

APP收发设备数据

6. 机智云后台查看设备交互数据

机智云后台查看设备交互数据1

机智云后台查看设备交互数据2

发布产品

产品发布到正式生产环境后,机智云将为你的设备免费分配独立的云端运行环境,确保你的设备24小时不间断在线以供用户使用,将享受更多机智云为您提供的免费增值服务,包括:智能设备统计分析,开放平台展示以及各种无微不至的技术支持服务。

产品如何申请发布上线,具体步骤如下:

1.进入产品详细信息页面,在产品名称旁边显示【申请发布】按钮

申请发布

2.点击【马上申请】按钮,如实填写申请信息审核

马上申请

3.点击【提交申请】按钮,跳转提交成功页面。机智云将免费为你提供人工审核以及严谨的测试,审核通过后,会根据你提交的量产计划免费提供后台服务器支持。

提交申请

产测简介

产测是生产环节中重要的部分,保证了产品的质量,提升自身产品形象。机智云产测工具为批量生产的产品提供了方便快捷的模块与MCU产测方式。在大型生产时,保证模块与MCU可正常使用。使用产测工具,必须让产品先上架。由产品创建者向机智云申请发布。机智云将免费为你提供人工审核以及严谨的测试。详情请点击浏览。

(0 ) (0 )
回复 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部