本帖最后由 dql2015 于 2016-12-13 08:51 编辑
一、概览
利用第三方云平台,打造了基于STM32F769I-DISCO物联平台,实现的功能有: a) 控制RGB LED的颜色(红、绿、蓝); b) 自带3种混合色,黄色、紫色、粉色,一键切换所需颜色; c) 控制F769DISCO板卡的两颗LED的亮灭; d) 显示STM32F769I-DISCO板载STM32F769NIH6芯片的温度; 二、硬件介绍STM32F769I-DISCO是STM32家族最新款ARM Cortex-M7开发板,基于STM32F769NIH6超高性能MCU,带双精度FPU及CHROM-ART加速器。
主要参数- 216 MHz / 462 DMIPS
- 128MB SDRAM, 512MB Quad-SPI Flash
- 4" TFT LCD触摸屏,带MIPI-DSI接口
Gokit扩展板采用ArduinoUNO接口,板载ESP8266-12F WiFi模块、温湿度传感器DHT11、2个按键、障碍物红外检测模块、微型直流电机、RGB 5050全彩LED。
GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。可将GAgent移植到WiFi模组、GPRS模组、PC端等。目前机智云提供由机智云移植的WiFi模组对应固件有:汉枫LPB100、乐鑫8266、汉枫LPT120、高通4004、RealTek 8711AM 、庆科3162等。简单的说就是,WiFi模块里面烧录了一个叫GAgent的固件,然后这个WiFi模块对用户的MCU就是串口透传了,复杂的协议、交互都给封装了。 三、云端配置
我们在云端创建一个名为F769DISCOGizwits的产品,添加和RGB LED控制、板载LED控制的数据点,数据点是设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。因为我们手机APP的功能需求是: 单独控制RGB LED的颜色(红、绿、蓝); 自带3种混合色,黄色、紫色、粉色,保证能一键切换所需颜色; 控制F769DISCO板卡的两颗LED的亮灭; 显示STM32F769I-DISCO板载STM32F769NIH6芯片的温度(通过芯片内置sensor获取); 把以上进行抽象,依次为数值量下发控制、枚举量下发控制、开关量下发控制、数值量上报。 所以建立如下数据点:
四、MCU端编程
在云端创建产品,建立好数据点后,即可自动生成STM32F103C8T6基于STD标准库函数的Keil工程,还可以下载自动生成的手机APP或者进行在线虚拟调试:
机智云的云端代码生成器生成的MCU工程文件组织目录如下:
这个工程只是一个框架,用户需要添加自己的驱动代码和业务逻辑,以本例来说就是我们需要实现RGBLED的驱动,板卡LED的驱动,串口中断接收和发送,定时器1ms中断,以及收到手机APP发的指令后干什么,软件逻辑如下:
由于F7是不支持STD标准库的,况且生成的工程MCU型号是STM32F103C8T6的,所以我们只需简单的移植一下,通过此图知道要把任意MCU通过WIFI模块连上机智云,只需实现3个简单的接口函数:串口发送、中断接收1字节数据,定时器1ms中断。
如上图根据STM32F769I-DISCO和机智云Gokit扩展板原理图,确定了引脚分配。我们先用STM32CubeMX生成STM32F769NIH6的基于HAL库函数的工程,配置方法参见附件STM32CubeMX生成配置报表PDF,再把和机智云服务器交互的串口协议(蓝框)拷贝过来,再写2个用户驱动(红框)即可。
最后实物如下:
附演示视频链接:
完整工程源码,资料请戳:
http://club.gizwits.com/thread-4067-1-1.html
|