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

手把手教你图形化玩转Nucleo-STM32L073RZ物联网智能硬件开发  

[复制链接]
Stm32McuLover 发布时间:2017-1-2 13:28
一、概览 1-系统架构.png / i, s) t0 x8 \; T6 N6 ^0 J
利全球领先的用第三方云平台-机智云,打造了基于超低功耗Nuleo-STM32L073的物联网应用系统,实现的功能有:
a)      远程手机APP控制RGB LED的颜色(红、绿、蓝);
b)     自带3种混合色,黄色、紫色、粉色,一键切换所需颜色;
c)      远程手机APP控制直流电机的正反转;
d)     远程手机APP显示温湿度;
e)      红外传感器障碍物检测;
实物图.jpg

2 F3 |9 |: l$ {) N0 v) a- y  c3 X6 Y
演示视频:
二、硬件介绍
0 ?6 X& L! ?$ I! ~/ V 2-NulceoL073正面.jpg
1 F1 o4 c' L: H; {" d
NUCLEO-L073RZ是ST公司推出的一款针对STM32L0系列设计的Cortex-M0开发板,支持mbed ,兼容Arduino,同时还提供 ST Morpho 扩展排针,可连接微控制器的所有周边外设。开发板基于STM32L073RZT6设计,开发板还集成了ST-LINK/V2-1仿真下载器(但仅对外提供SWD接口),免除您另外采购仿真器或下载器的麻烦。并且具备Arduino接口,可接入 Arduino 巨大生态系统的各种 Shield 扩展板,让您能够轻松快速增加特殊功能。
3-GoKit介绍.png 4-机智云Gokit扩展板正面.jpg 5-机智云Gokit扩展板反面.jpg
机智云是智能硬件时代专为硬件提供后台支持的云服务平台,服务的内容主要包括了统计分析、数据安全、远程管理、软件升级等。GoKit是机智云推出的一套智能硬件开发板,Gokit扩展板采用Arduino UNO接口,板载ESP8266-12F WiFi模块、温湿度传感器DHT11、2个按键、障碍物红外检测模块、微型直流电机、RGB 5050全彩LED。
三、软件系统
+ c/ H# Y" B' r3 D. M: q
开发工具:STM32CubeMX和IAR for ARM,IAR不做介绍,这里介绍下ST推广的全新开发工具STM32CubeMX。
6-STM32CubeMX.png
STM32CubeMX 是 ST 意法半导体近几年来大力推荐的 STM32 芯片图形化配置工具, 允许用户使用图形化向导生成 C 初始化代码,可以大大减轻开发工作,时间和费用。 STM32CubeMX覆盖了 STM32 全系列芯片。它具有如下特性:
① 直观的选择 MCU 型号,可指定系列、封装、外设数量等条件
② 微控制器图形化配置
③ 自动处理引脚冲突
④ 动态设置时钟树,生成系统时钟配置代码
⑤ 可以动态设置外围和中间件模式和初始化
⑥ 功耗预测
⑦ C 代码工程生成器覆盖了STM32 微控制器初始化编译软件,如 IAR, KEIL, GCC。
⑧ 可以独立使用或者作为 Eclipse 插件使用
7 Q3 Z5 |% L  ^7 u
机智云智能设备接入原理:
7-机智云平台架构.png
8-系统逻辑.png
9-GAgent架构.png
硬件厂商对硬件智能化的第一步是让设备能够联网,GAgent是机智云提供的一款兼容国内主流Wi-Fi模块、移动网络模块的模组系统。硬件厂商只需理解如何与GAgent进行通讯即可。GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。可将GAgent移植到WiFi模组、GPRS模组、PC端等。目前机智云提供由机智云移植的WiFi模组对应固件有:汉枫LPB100、乐鑫8266、汉枫LPT120、高通4004、RealTek 8711AM 、庆科3162等。简单的说就是,WiFi模块里面烧录了一个叫GAgent的固件,然后这个WiFi模块对用户的MCU就是串口透传了,复杂的协议、交互都给封装了。
3 \4 p$ Z5 ^$ X# g7 A8 Z( ^
四、云端配置
( V! D, j( |9 |' C% y* O& l; a' O 10-云端产品.png # |1 I1 i1 p& w% v* [. P
我们在机智云开发者中心http://dev.gizwits.com/zh-cn/developer/创建一个名为NucleoL073GoKitS的产品并添加数据点,数据点是设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。因为我们手机APP的功能需求是:
单独控制RGB LED的颜色(红、绿、蓝);
自带3种混合色,黄色、紫色、粉色,保证能一键切换所需颜色;
远程手机APP控制直流电机的正反转;
远程手机APP显示温湿度传感器DHT11采集的温湿度;
红外传感器障碍物检测;
把以上进行抽象,依次为数值量下发控制、枚举量下发控制、数值量下发控制、数值量上报、布尔值上报。
所以建立如下数据点(这里可以利用官方提供的模板):
11-数据点模板.png
12-选择模板数据点.png
创建后的数据点如下:
13-云端数据点.png
五、MCU端编程" _; N/ F5 T( x- f/ s4 i! G6 W
在云端创建产品,建立好数据点后,即可自动生成多种方案的工程,还可以下载自动生成的手机APP或者进行在线虚拟调试,机智云为广大开发者提供一系列简便的开发工具:
14-云端开发向导.png
如利用虚拟设备,在没有搭建硬件设备平台时可模拟设备与云端的交互:
15-云端虚拟调试.png
16-云端虚拟调试界面.png
在服务栏目->MCU开发,我们选择独立MCU+WiFi方案:
17-选择生成MCU工程.png
点击生成代码包即可;
18-云端工程生成.png
下载生成的工程,解压,其文件组织目录如下:
19-云端生成工程目录.png
注意Gizwits文件夹下包含4个文件,这些是机智云协议层的,已包含云端创建的数据点信息并留出用户接口:
20-机智云协议文件.png
另外需要注意User目录下的main.c文件,这里包含了程序框架。
21-生成工程目录.png
这个工程(基于STM32标准库函数且IDE为Keil for ARM)只是一个框架,但包含了和机智云通信协议层,用户只需要添加自己的驱动代码和业务逻辑,以本例来说就是我们需要实现RGB LED的驱动,直流电机的驱动,温湿度传感器的驱动,红外传感器的驱动,以及收到手机APP发的指令后干什么,软件逻辑如下:
22-软件架构.png
所以我们只需简单的移植一下,通过此图知道要把任意MCU通过WIFI模块连上机智云,只需实现3个简单的接口函数:串口发送、中断接收1字节数据,定时器1ms中断
% Z5 z* }' y* g/ [0 T
23-IO分配.png
如上图根据Nucleo-STM32L073和机智云Gokit V2.3扩展板原理图,确定了引脚分配。这里由于板载ST-LINK虚拟串口和Arduino UNO接口的串口有冲突,需要对Nucleo做点手术:
24-NulceoL073背面处理.jpg
我们先用STM32CubeMX生成STM32FL073RZ的基于HAL库函数的IAR工程,配置详细方法参见附件STM32CubeMX生成配置报表PDF
25-Cube配置.png
这里需要指出的是堆栈Heap和Stack的设置,需要修改大一些,另外工程文件夹名为GokitShield_Nucleo64_STM32L073RZ:
26-Cube堆栈设置.png
再把云端生成工程的GizWits目录拷贝到IAR工程中,移植硬件驱动即可。
27-IAR工程目录.png
28-IAR工程Gizwits路径.png
到此完成了机智云协议层的拷贝,下面拷贝硬件驱动层
我们在机智云官网下载微信宠物屋源码
29-官网下载源码.png
解压,找到Hal文件夹,如下图,里面包含了外设驱动源码,但是这些是基于STD库函数且MCU是STM32F103C8T6:
30-源码驱动路径.png
而我们STM32CubeMX软件生成的是基于HAL库函数且MCU是STM32L073RZ,所以需要修改这些硬件驱动,移植这里就不介绍了,大家下载附件查看即可,我这里把这些驱动文件.c和.h放在一个文件夹Hal:
32-IAR工程驱动路径.png
如下图IAR工程,红框是机智云协议层,蓝框是硬件驱动层。
33-IAR界面.png
需要修改的3个接口和需要添加的用户逻辑位于gizwits_product.c,前文提到的三个接口函数是定时器1ms中断,串口发送和中断接收如下:
34-接口1.png
35-接口2.png
36-接口3.png
上电,打开串口调试助手可以查看日志:
串口调试.png
; a2 U. w: y2 p* h7 z; A, e0 z4 q
手机APP主界面.png
7 f9 Q/ m2 ~! b5 M2 g
总结:本文介绍了使用机智云自助开发平台快速创建智能产品的过程,并给出了移植机智云微信宠物屋SDK到Nucleo-STM32L073的过程。利用机智云强大的代码生成工具,我们只需简单的把用户代码填充到机智云为我们搭建的框架即可。
1.STM32CubeMX配置PDF:
GokitShield_Nucleo64_STM32L073RZ.pdf (177.08 KB, 下载次数: 50)

评分

参与人数 2 ST金币 +38 收起 理由
wofei1314 + 18 赞一个!
zero99 + 20

查看全部评分

收藏 6 评论38 发布时间:2017-1-2 13:28

举报

38个回答
jackten 回答时间:2017-1-2 18:18:17
谢谢分享                           
Stm32McuLover 回答时间:2017-1-3 12:12:47
五哥1 发表于 2017-1-2 19:358 r9 M4 v4 P0 V# b! [3 G) H9 v
这个CUBE 看来以后就是潮流了,它有益处,但是也有缺点,那些封装的内部函数,真的不好理解。 ...

3 \* Q6 B* i2 G屏蔽硬件是趋势
Ian-392967 回答时间:2017-3-11 18:46:56
xfccccccccccccvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
霹雳之火 回答时间:2017-1-2 14:38:38
谢谢分享,干货很多
Stm32McuLover 回答时间:2017-1-2 14:58:06
霹雳之火 发表于 2017-1-2 14:383 Q9 j1 \$ t- l+ _7 B( ?
谢谢分享,干货很多
* C# _8 T& D7 W# [" E6 z
Stm32McuLover 回答时间:2017-1-2 18:20:01
jackten 发表于 2017-1-2 18:18
2 F& A4 I' n4 S& p: ~谢谢分享
6 i4 v3 P. Q! |
五哥1 回答时间:2017-1-2 19:35:14
这个CUBE 看来以后就是潮流了,它有益处,但是也有缺点,那些封装的内部函数,真的不好理解。
五哥1 回答时间:2017-1-2 20:45:15
对比一下,我玩的还是太浅了
奏奏奏 回答时间:2017-1-3 00:34:50
加这么一块板,成本要加多少?/ }7 k7 q: P, s0 u$ D3 n' H
如果比较贵的话,还是想自己DIY一块
小小超 回答时间:2017-1-3 08:44:03
谢谢分享谢谢分享谢谢分享谢谢分享
左岸右岸 回答时间:2017-1-3 09:01:44
机智云越来越强大了
andypanfan 回答时间:2017-1-3 09:03:15
谢谢分享  
any012 回答时间:2017-1-3 09:05:38
同问,一块机智云板大概多少钱呢?
5265325 回答时间:2017-1-3 09:37:40
回答时间:2017-1-3 09:44:15
收到收到,歇息谢谢
8 r4 n: J" n" b- S- q# C' J
. r$ _6 G* V# \- r) V
Stm32McuLover 回答时间:2017-1-3 11:51:48
any012 发表于 2017-1-3 09:054 u; T! F4 _9 f$ M
同问,一块机智云板大概多少钱呢?

4 P+ B9 k) g9 G$ H$ T; [/ K免费申请的
123下一页

所属标签

相似分享

官网相关资源

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