收藏官网首页
查看: 24933|回复: 9

使用STM32CubeMX快速开发基于STM32的室内智能环境监测仪

321

主题

1054

帖子

4502

积分

论坛元老

Rank: 8Rank: 8

积分
4502
QQ
发表于 2017-4-28 14:47:41 | 显示全部楼层 |阅读模式
免费使用STM32、APP自动代码生成工具
前言:随着空气污染问题得到越来越多人的关注,雾霾、PM2.5、甲醛等词汇也频繁出现在大家的生活中,特别有小孩、老人的家庭越来越关注PM2.5、甲醛的危害。PM2.5容易引起咳嗽、哮喘呼吸系统疾病,危害人体心血管、生殖系统,导致胎儿畸形,甚至致癌。甲醛也是大家熟知的有害气体,室内、车内甲醛超标也成为非常多的家庭头疼的问题,甲醛是有机气态物质(TVOC)的一种,TVOC能引起机体免疫水平失调,影响中枢神经系统功能以及消化系统。正是空气污染的危害得到越来越多人的重视,空气质量监测的需求也越来越广泛,机智云智能硬件开发平台可以为广大空气检测设备厂商提供可靠的智能解决方案,帮助企业快速开发产品推向市场。本文以室内智能环境监测仪为例,利用机智云自助开发平台,只需30分钟即可搭建产品原型。
一、         目标
室内智能环境监测仪具备实时采集环境数据的能力,能够监测室内温度、湿度、空气质量3个参数,另外具备排风、污染指数过高报警功能;用户可通过手机APP查看监测信息以及控制排风。
原型:
1.jpg
二、         方案讨论
智能设备多是由单片机/微处理器/微控制器等构成的嵌入式系统,通过各类传感器获取信息,主流的联网方式是嵌入GPRSWIFI、蓝牙等无线通信模块,从而把数据推送到远程服务器,完成和手机APP/微信/网页等的交互。传统的开发方式,需要开发者编写智能硬件设备底层驱动、无线通信模组应用层协议制定和编写、服务器开发、移动端开发、业务逻辑等,周期长,可维护性差。机智云平台是机智云物联网公司经过多年行业内的耕耘及对物联网行业的深刻理解,而推出的面向个人、企业开发者的一站式智能硬件开发及云服务平台。平台提供了从定义产品、设备端开发调试、应用开发、产测、云端开发、运营管理、数据服务等覆盖智能硬件接入到运营管理全生命周期服务的能力。机智云平台为开发者提供了自助式智能硬件开发工具与开放的云端服务。通过傻瓜化的自助工具、完善的SDKAPI服务能力最大限度降低了物联网硬件开发的技术门槛,降低开发者的研发成本,提升开发者的产品投产速度,帮助开发者进行硬件智能化升级,更好的连接、服务最终消费者。通过机智云平台,省去中间环节,开发者只需关注硬件底层驱动(事实上,硬件底层驱动一般由硬件供应商提供)和业务逻辑即可,大大缩短研发周期,节省研发成本。
2.png
3-架构.png
三、设备接入原理
硬件厂商对硬件智能化的第一步是让设备能够联网,GAgent是机智云提供的一款兼容国内主流Wi-Fi模块、移动网络模块的模组系统。硬件厂商只需理解如何与GAgent进行通讯即可。开发者或企业研发人员只需在正在开发的智能硬件上嵌入写好机智云连接协议GAgent的连网模块,即可通过机智云平台实现设备连网及智能化,连网模块包括Wi-FiGPRS等主流连网方式,同时还支持BLEGSMCDMAZigbeeLoRa等联网方案接入。GAgent主要的作用是数据转发,是设备数据、机智云、应用端(APP)的数据交互桥梁。可将GAgent移植到WiFi模组、GPRS模组、PC端等。目前机智云提供由机智云移植的WiFi模组对应固件有:汉枫LPB100、乐鑫8266、汉枫LPT120、高通4004 RealTek 8711AM 、庆科3162等。
4.png

5.png

四、开发流程
了解了机智云平台功能和设备接入原理后,现在开始30分钟打造室内智能环境监测仪之旅吧~分为3步,一是MCU端开发,二是云端配置,三是设备调试。
硬件准备:机智云gokit扩展板(板载温DHT11湿度传感器、esp8266无线WIFI模块、直流小电机、RGB三色灯、按键),意法半导体Nucleo-F401RE评估板,PC机;

整个系统结构如下:
6-系统结构.png
MCU端开发
MCU端的主要工作是编写温湿度传感器、RGB灯、直流小电机、空气质量传感器的驱动代码和与云端交互的业务逻辑。
我们采用ST(意法半导体)推出的Nucleo-F401RE板卡作为控制核心,板卡搭载了STM32F401RET6核心微控制器(32ARM Cortex-M4处理器,带FPU单元,最高84MHz主频、集成512KB Flash 96KB SRAM),支持arduino UNO接口。
使用STM32CubeMX快速配置STM32F401RET6,我们需要使用的片上外设有:
ADC(开启DMA):用于读取空气质量传感器MQ-135输出的模拟量
GPIO:编写模拟时序驱动DHT11RGB 5050灯,读取按键输入
PWM:通过驱动IC驱动直流小电机,模拟排风
UART:与WIFI模组通信,使设备具备联网能力
定时器:扫描按键、系统心跳

详细的配置方法,不再赘述,生成的工程命名为Nucleo-F401RE_Gokit,参考附件PDF报告即可;
7-STM32CubeMX配置.png
云端配置
机智云平台是致力于物联网、智能硬件云服务的开放平台。机智云专注于提供智能云服务及物联网的软硬件解决方案 ,帮助传统硬件厂商产品升级,快速实现硬件智能化。要实现硬件的智能化,除了硬件本身外,还需要实现:智能云平台、手机APP、联网模块,每一个领域都需要专业的团队来支撑。机智云提供完整的解决方案,让厂商或开发者只需要专注于自身产品硬件。以最小的成本和风险实现硬件智能化,获得产品最大的增值。
创建产品 8-创建产品.png
在机智云开发者中心已成功创建室内智能环境监测仪产品,机智云为该产品分配Product KeyProduct Secret参数。Product Key参数由开发者写入设备MCU(设备主控板),并告知WiFi/GPRS模块,WiFi/GPRS模块登录机智云后,机智云将会识别该Product Key的产品。Product Secret参数是APP开发或服务器对接时所使用的参数。
创建数据点
9.png
数据点即设备产品的功能的抽象,用于描述产品功能及其参数。创建数据点后,设备与云端通讯的数据格式即可确定,设备、机智云可以相互识别设备与机智云互联互通的数据。本次项目需要把MCU获取的温度、湿度、空气质量指数3个参数上传到服务器,这3个参数为数值类型,对于云端来讲只读;直流电机的控制,实际上是手机APP端推送一个具体数值给MCU,MCU利用此数值来控制电机,参数类型为数值,对云端来讲可写;另外我们还定义了一个报警功能,当空气质量指数高于阈值时,向手机端推送一个信号,类型为布尔值,报警。数据点可从excel导入或者导入机智云提供的范例后再修改。
10-数据点.png
自动生成MCU SDK
自动生成的MCUSDK代码实现了机智云通信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的 API。当设备收到云端或 APP 端的数据后,程序会将数据转换成对应的事件并通知到应用层,开发者只需要在对应的事件处理逻辑中添加传感器的控制函数,便可完成产品的开发。这里选择独立MCU方案、硬件平台STM32f103c8x后,机智云直接生成适应STM32f103c8x的keil工程代码。我们本次只需要生成的协议层,因为底层驱动是通过STM32CubeMX生成且MCU是STM32F401RET6。
11-选择MCU方案.png
12-支持的平台.png
13-生成好了MCU工程.png
MCU SDK文件内容目录结构
下载生成的MCU代码,解压后,如下图,其中黑色标注部分为STM32f103cx8硬件平台开发基本文件。绿色标注部分为机智云逻辑部分,硬件的串口驱动、定时器驱动、按键驱动等驱动实现完毕,开发者可直接在Gizwits_product.c&Gizwits_product.h文件编写硬件动作执行函数。
14.png
如下是MCU通过烧录好GAgent固件的WIFI/GPRS模组与服务器交互的逻辑,可以看出整个过程全部被封装,留给用户的接口很简单,对于资源足够的MCU,用户只需要在MCU实现3个