[资料] STM32 NucleoL496ZG智能灯案例
942 查看
2 回复
 楼主 | 发布于 2017-10-17 | 只看楼主
分享到:

一、简介
 

接线图:
esp8266模块
TX-----àD0
RX-----àD1
WS2812LED
Din-----àD11
机智云智能设备接入原理:
硬件厂商对硬件智能化的第一步是让设备能够联网,GAgent是机智云提供的一款兼容国内主流Wi-Fi模块、移动网络模块的固件。GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。简单的说就是,WiFi模块里面烧录了一个叫GAgent的固件,然后这个WiFi模块对用户的MCU就是串口透传了,复杂的协议、交互都给封装了。
二、云端配置
 
在机智云开发者中心创建一个名字叫NucleoL496智能灯的产品并添加数据点,数据点是设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定。因为我们手机APP的功能需求是控制LED的开关和调色,把以上进行抽象,依次为开关量下发控制、数值量下发控制。
所以建立如下数据点(详细的数据点见附件excel):
三、MCU端编程
在服务栏目->MCU开发,我们选择独立MCU+WiFi方案:
点击生成代码包即可;
下载生成的工程,解压,其中 Gizwits文件夹下包含4个文件,这些是机智云协议层的,已包含云端创建的数据点信息并留出用户控制的接口;

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

首先通过STM32CubeMX配置下,这里需要配置SPI用来驱动WS2812 LED,串口3为9600-N-1与WIFI模块通信,开启接收中断,串口1为115200-N-1用于串口打印调试日志,定时器6和7都配置为1ms中断,一个用于心跳,一个用于定时扫描按键。详细的配置见附件里面的PDF报告。
首先添加2个分组,分别是协议层和硬件驱动层:
如下是时基接口,在1ms中断服务函数里面调用gizTimerMs():
如下是串口发送1字节数据接口:
如下是串口中断接收1字节接口,在串口中断服务回调函数里面调用gizPutData()把数据写入缓冲区:
如下是用户调用配置入网函数,对于大多数智能设备并没有显示屏和键盘等输入输出装置,因此需要通过手机APP来进行配置路由器的SSID和密码,我这里使用了板载的蓝色用户按键长按来触发:
(1 ) (0 )

核磁共振

回复 举报

回复于 2018-06-20 沙发

感谢分享!有需要机械臂,电源,硬件电路设计,软件编程,开发板等各种定制的可以私聊我哦,相互学习,共同进步。
(0 )
评论 (0) 举报

回复于 2020-03-16 2#

谢谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

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

    全部板块

    返回顶部