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

查看: 1623|回复: 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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版