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

查看: 1624|回复: 2

[STM32L496] 【NUCLEO-L496ZG评测】手机遥控智能灯

[复制链接]

64

主题

744

回帖

23

蝴蝶豆

实习版主

最后登录
2020-12-8
发表于 2017-4-9 14:41:12 | 显示全部楼层 |阅读模式
本帖最后由 哈佛祖安智 于 2017-4-9 14:51 编辑

在前篇帖子https://www.stmcu.org.cn/module/forum/thread-611253-1-1.html里描述了如何给ws2812b型RGB LED灯写底层驱动,下面在此基础上做一个可以通过手机远程控制的智能灯。
器件:
ws2812b型LED模块一个;
灯珠正面.jpg 灯珠反面.jpg
ESP8266-12F WiFi模块一个;
Nucleo-L496ZG板卡(用了STM32CubeMX,其实任何STM32都可以很方便的移植);
杜邦线8根;
智能手机一部;
一、简介
系统结构图如下:
1-框图.png
附演示视频链接:
接线图:
ESP8266模块
TX-----àD0
RX-----àD1
WS2812LED
Din-----àD11
2-接线图.jpg
云平台用的机智云,设备接入原理:
3-架构.png

2.png

4-GAgent原理2.png

硬件厂商对硬件智能化的第一步是让设备能够联网,GAgent是机智云提供的一款兼容国内主流Wi-Fi模块、移动网络模块的固件。GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。简单的说就是,WiFi模块里面烧录了一个叫GAgent的固件,然后这个WiFi模块对用户的MCU就是串口透传了,复杂的协议、交互都给封装了。

二、云端配置 5-建立的产品.png
在机智云开发者中心创建一个名字叫NucleoL496智能灯的产品并添加数据点,数据点是设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定。因为我们手机APP的功能需求是控制LED的开关和调色,把以上进行抽象,依次为开关量下发控制、数值量下发控制。
所以建立如下数据点(详细的数据点见附件excel):
6-数据点.png


三、MCU端编程
在服务栏目->MCU开发,我们选择独立MCU+WiFi方案:
7-选择独立MCU方案.png
点击生成代码包即可;
8-生成好的MCU工程.png
下载生成的工程,解压,其中 Gizwits文件夹下包含4个文件,这些是机智云协议层的,已包含云端创建的数据点信息并留出用户控制的接口;

User目录下的main.c文件,包含了程序的框架。
9-用户接口.png
通过此图,通过此图知道要把任意MCU通过WIFI模块连上机智云,只需实现3个简单的接口函数:串口发送、中断接收1字节数据,定时器1ms中断“心跳”

首先通过STM32CubeMX配置下,这里需要配置SPI用来驱动WS2812 LED,串口3为9600-N-1与WIFI模块通信,开启接收中断,串口1为115200-N-1用于串口打印调试日志,定时器6和7都配置为1ms中断,一个用于心跳,一个用于定时扫描按键。详细的配置见附件里面的PDF报告。
9-2STM32CubeMX的配置.png
首先添加2个分组,分别是协议层和硬件驱动层:
10-添加2个分组.png
如下是时基接口,在1ms中断服务函数里面调用gizTimerMs():
11-时基接口.png
如下是串口发送1字节数据接口:
12-串口发送接口.png
如下是串口中断接收1字节接口,在串口中断服务回调函数里面调用gizPutData()把数据写入缓冲区:
13-串口接收接口.png
如下是用户调用配置入网函数,对于大多数智能设备并没有显示屏和键盘等输入输出装置,因此需要通过手机APP来进行配置路由器的SSID和密码,我这里使用了板载的蓝色用户按键长按来触发:
14-调用配置入网.png
如下是用户业务代码的填充,就是开关灯和设置灯的颜色:
15-用户处理1.png
16-用户处理2.png
17-用户处理3.png
附上RGB 24位颜色选择表:
颜色选择2.png
颜色选择1.png
最后堆栈Heap和Stack的设置,需要修改大一些,可分析map文件确定。
四、手机APP
可以直接下载通用版本的APP,就是简介部分那样的界面,包含基本功能,如果需要定制自己的APP,例如,需要修改APP图标、启动Logo、主题颜色、其它功能模块等,就需要使用APP代码自动生成工具了。

如下图,这里可下载通用版本APP:
18-通用版APP下载.png
如果想定制自己的APP,需要先在应用配置界面添加应用,我这里添加个安卓的:
19-添加安卓应用.png
添加好后就是这样:
20-添加好的应用.png
接着在应用开发里再选择平台和应用名字,Product Secret可在产品信息/基本信息栏查看:
21-选择安卓应用方案.png
点击生成代码后,一会就生成好了。
22-生成好的APP.png
下载解压,可看到提供了Eclipse和AS两种ID E的SDK以及说明教程:
23-解压后的APP代码包.png
APP二次开发就不废话了,有需要的自己根据说明操作即可。

附件:
工程源码,文件较大,先解压zip,再用7zip解压(里面有STM32CubeMX配置生成的PDF报告):
yuanam.zip (7.76 MB, 下载次数: 20)
<
回复

使用道具 举报

7

主题

1426

回帖

42

蝴蝶豆

论坛元老

最后登录
2020-8-11
发表于 2017-4-9 16:42:20 | 显示全部楼层
赞~~~
回复 支持 反对

使用道具 举报

53

主题

445

回帖

152

蝴蝶豆

论坛元老

最后登录
2020-12-7
发表于 2017-4-10 07:11:34 来自手机 | 显示全部楼层
楼主一直有分享机智云,我也去申请了开发套件,过来下载工程文件参考
回复 支持 反对

使用道具 举报

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