你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3271|回复: 17

[STM32F413] 图形化玩转Nucleo-STM32F413手机APP远程控制应用开发

[复制链接]

64

主题

744

回帖

23

蝴蝶豆

实习版主

最后登录
2020-12-8
发表于 2017-2-13 11:05:44 | 显示全部楼层 |阅读模式

一、概览 1-系统架构.png
利用全球领先的用第三方云平台-机智云,打造了基于Nuleo-STM32F413的物联网应用系统,实现的功能有:
a)      远程手机APP控制RGB LED的颜色(红、绿、蓝);
b)     自带3种混合色,黄色、紫色、粉色,一键切换所需颜色;
c)      远程手机APP控制Nuleo-STM32F413板载2颗LED;
d)     远程手机APP显示温湿度;
e)      红外传感器障碍物检测;
f)       远程手机APP显示STM32F413内部温度;
2-实物图.jpg
二、硬件介绍
3-图1.jpg
NUCLEO-F413ZH是ST公司推出的一款针对STM32F4入门级系列设计的Cortex-M4开发板,支持mbed ,兼容Arduino,同时还提供ST Zio接口 和 ST morpho扩展排针,可连接微控制器的所有周边外设。开发板基于STM32F413ZHT6设计,开发板还集成了ST-LINK/V2-1仿真下载器(但仅对外提供SWD接口),免除您另外采购仿真器或下载器的麻烦。并且具备Arduino接口,可接入 Arduino 巨大生态系统的各种 Shield 扩展板,让您能够轻松快速增加特殊功能。
4-GoKit介绍.png 5-GoKit介绍.jpg 6-GoKit介绍.jpg
机智云是智能硬件时代专为硬件提供后台支持的云服务平台,服务的内容主要包括了统计分析、数据安全、远程管理、软件升级等。GoKit是机智云推出的一套智能硬件开发板,Gokit扩展板采用Arduino UNO接口,板载ESP8266-12F WiFi模块、温湿度传感器DHT11、2个按键、障碍物红外检测模块、微型直流电机、RGB 5050全彩LED。
三、软件系统
开发工具:STM32CubeMX和IAR for ARM,IAR不做介绍,这里介绍下ST推广的全新开发工具STM32CubeMX。
7-STM32CubeMX.png
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。 STM32CubeMX覆盖了 STM32 全系列芯片。它具有如下特性:
① 直观的选择 MCU 型号,可指定系列、封装、外设数量等条件
② 微控制器图形化配置
③ 自动处理引脚冲突
④ 动态设置时钟树,生成系统时钟配置代码
⑤ 可以动态设置外围和中间件模式和初始化
⑥ 功耗预测
⑦ C 代码工程生成器覆盖了STM32 微控制器初始化编译软件,如 IAR, KEIL, GCC。
⑧ 可以独立使用或者作为 Eclipse 插件使用

机智云智能设备接入原理:
8-机智云平台架构.png
9-系统逻辑.png
10-GAgent架构.png
硬件厂商对硬件智能化的第一步是让设备能够联网,GAgent是机智云提供的一款兼容国内主流Wi-Fi模块、移动网络模块的模组系统。硬件厂商只需理解如何与GAgent进行通讯即可。GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。可将GAgent移植到WiFi模组、GPRS模组、PC端等。目前机智云提供由机智云移植的WiFi模组对应固件有:汉枫LPB100、乐鑫8266、汉枫LPT120、高通4004、RealTek 8711AM 、庆科3162等。简单的说就是,WiFi模块里面烧录了一个叫GAgent的固件,然后这个WiFi模块对用户的MCU就是串口透传了,复杂的协议、交互都给封装了。

四、云端配置
11-产品.png
我们在机智云开发者中心http://dev.gizwits.com/zh-cn/developer/创建一个名为F413ZH_Gokit的产品并添加数据点,数据点是设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。因为我们手机APP的功能需求是:
单独控制RGB LED的颜色(红、绿、蓝);
自带3种混合色,黄色、紫色、粉色,保证能一键切换所需颜色;
远程手机APP控制Nuleo-STM32F413板载2颗LED;
远程手机APP显示温湿度传感器DHT11采集的温湿度;
红外传感器障碍物检测;
远程手机APP显示STM32F413内部温度(通过芯片内置Sensor获取);
把以上进行抽象,依次为数值量下发控制、枚举量下发控制、开关量下发控制、数值量上报、布尔值上报、数值量上报。
所以建立如下数据点(这里可以利用官方提供的模板或者从excel导入):
12-创建数据点.png
13-方案模板.png
应用此模板后,把我们不需要的直流电机删除,另外新增3个数据点:2颗板载LED和芯片内部温度,创建后的数据点如下(文末提供数据点excel下载):
14-数据点.png
14-数据点2.png
五、MCU端编程
在云端创建产品,建立好数据点后,即可自动生成多种方案的工程,还可以下载自动生成的手机APP进行测试,在没有硬件设备时还可以进行在线虚拟调试以进行前期功能评估,机智云为广大开发者提供一系列简便的开发工具:
15-开发向导.png
16-开发向导2.png
如利用虚拟设备,在没有搭建硬件设备平台时可模拟设备与云端的交互:
17-虚拟设备1.png
18-虚拟设备2.png
接下来,我们使用MCU代码自动生成工具,生成一个STM32工程,在服务栏目->MCU开发,我们选择独立MCU+WiFi方案:
19-选择生成工程方案.png
这里选择STMF407X的,点击生成代码包即可;
20-生成工程.png
很快就可以生成完毕;
21-生成工程完毕.png
下载生成的工程,解压,其文件组织目录如下:
22-生成的工程目录.png
API介绍文档包含了设备接入框架简介和用户API;

注意Gizwits文件夹下包含4个文件,这些是机智云协议层的,已包含云端创建的数据点信息并留出用户接口:
23-生成的协议层.png
另外需要注意User目录下的main.c文件,这里包含了程序框架。
24-文件介绍.png
这个工程(基于STM32标准库函数且IDE为Keil for ARM)只是一个框架,但包含了和机智云通信协议层,用户只需要添加自己的驱动代码和业务逻辑,以本例来说就是我们需要实现RGB LED的驱动,板载2颗LED的驱动,温湿度传感器的驱动,STMF413芯片内部温度Sensor驱动、红外传感器的驱动,以及收到手机APP发的指令后干什么,软件逻辑如下:
25-框架.png
所以我们只需简单的移植一下,通过此图知道要把任意MCU通过WIFI模块连上机智云,只需实现3个简单的接口函数:串口发送、中断接收1字节数据,定时器1ms中断
26-io分配1.png
27-io分配2.png
如上图根据Nucleo-STM32F413和机智云Gokit V2.3扩展板原理图,确定了引脚分配。本来可以加上直流电机的,无赖Nucleo-STM32F413那里刚好缺少一个PWM输出;

我们先用STM32CubeMX生成STM32FF413ZHT6的基于HAL库函数的IAR工程,配置详细方法参见附件PDF文档:GokitShield_Nucleo144_STM32F413ZH
28-STM32CubeMX配置.png
这里需要指出的是堆栈Heap和Stack的设置,需要修改大一些!!!另外工程文件夹名为GokitShield_Nucleo144_STM32F413ZH:
29-工程堆栈.png
再把云端生成工程的GizWits目录拷贝到IAR工程中:
30-STM32CubeMX生成工程目录.png
31-协议层代码拷贝.png
到此完成了机智云协议层的拷贝,下面拷贝硬件驱动层
32-下载硬件驱动.png
解压,找到Hal文件夹,如下图,里面包含了外设驱动源码,但是这些是基于STD库函数且MCU是STM32F103C8T6:
33-解压硬件驱动.png
而我们STM32CubeMX软件生成的是基于HAL库函数且MCU是STM32F413ZHT6,所以需要修改这些硬件驱动,移植这里就不介绍了,大家下载附件查看即可,我这里把这些驱动文件.c和.h放在一个文件夹Hal:
34-移植好的驱动.png
PS:直流电机驱动hal_motor未使用;
打开IAR工程,添加好这些文件,如下图IAR工程,红框是机智云协议层,蓝框是硬件驱动层:
35-IAR工程.png
需要修改的3个接口和需要添加的用户逻辑位于gizwits_product.c,前文提到的三个接口函数是定时器1ms中断,串口发送和中断接收如下:
36-IAR工程接口1.png
37-IAR工程接口2.png
38-IAR工程接口3.png
其他细节不再赘述,下载源码查看即可或者前往机智云论坛http://club.gizwits.com/ 查看更多教程;

下载代码,上电,打开串口调试助手可以查看日志:
39-串口查看日志.png
总结:本文介绍了使用机智云自助开发平台快速创建智能产品的过程,并给出了移植机智云微信宠物屋SDK到Nucleo-STM32F413的过程。利用机智云强大的代码生成工具,我们只需简单的把用户代码填充到机智云为我们搭建的框架即可!

如有任何疑问,欢迎跟贴讨论
附件:
1.IAR工程源码

GokitShield_Nucleo144_STM32F413ZH.part01.rar (9 MB, 下载次数: 28)

评分

参与人数 2ST金币 +20 收起 理由
Tcreat + 10 赞一个!
creep + 10 玩的真溜,感谢分享!

查看全部评分

<
回复

使用道具 举报

0

主题

99

回帖

0

蝴蝶豆

中级会员

最后登录
2017-6-2
发表于 2017-2-13 11:23:38 | 显示全部楼层
顶楼主
回复 支持 反对

使用道具 举报

14

主题

293

回帖

17

蝴蝶豆

金牌会员

最后登录
2019-5-9
发表于 2017-2-13 11:48:56 | 显示全部楼层
机智云,有了解
回复 支持 反对

使用道具 举报

64

主题

744

回帖

23

蝴蝶豆

实习版主

最后登录
2020-12-8
 楼主| 发表于 2017-2-13 12:13:20 | 显示全部楼层
回复 支持 反对

使用道具 举报

0

主题

19

回帖

2

蝴蝶豆

初级会员

最后登录
2020-3-2
发表于 2017-2-13 16:09:58 | 显示全部楼层
很强大,APP怎么开发

回复 支持 反对

使用道具 举报

10

主题

693

回帖

0

蝴蝶豆

金牌会员

最后登录
2018-6-15
发表于 2017-2-13 16:11:23 | 显示全部楼层
厉害厉害        
回复 支持 反对

使用道具 举报

1

主题

8

回帖

0

蝴蝶豆

初级会员

最后登录
2018-12-20
发表于 2017-2-13 16:41:31 | 显示全部楼层
支持楼主分享
回复 支持 反对

使用道具 举报

64

主题

744

回帖

23

蝴蝶豆

实习版主

最后登录
2020-12-8
 楼主| 发表于 2017-2-13 18:04:40 来自手机 | 显示全部楼层
jack2016 发表于 2017-2-13 16:09
很强大,APP怎么开发

直接用官网提供的通用版本,也可下载sdk源码二次开发,做出界面更炫,功能更多的apo
回复 支持 反对

使用道具 举报

64

主题

744

回帖

23

蝴蝶豆

实习版主

最后登录
2020-12-8
 楼主| 发表于 2017-2-13 18:05:08 来自手机 | 显示全部楼层
zoomdy 发表于 2017-2-13 11:48
机智云,有了解

哈哈
回复 支持 反对

使用道具 举报

64

主题

744

回帖

23

蝴蝶豆

实习版主

最后登录
2020-12-8
 楼主| 发表于 2017-2-13 18:05:29 来自手机 | 显示全部楼层
auroradst-10313 发表于 2017-2-13 16:41
支持楼主分享

感谢您的支持
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版