机智云云平台+STM32的智能家居空气检测及净化设计

发布者:MindfulBeing最新更新时间:2023-08-17 来源: elecfans关键字:STM32 手机看文章 扫描二维码
随时随地手机看文章

本文介绍的智能家居空气检测及净化系统是由桂林电子科技大学国际学院陈龙杰等人设计开发完成。通过使用机智云平台、STM32等,实现室内空气监测和排气系统,实时监控室内空气,采集室内温湿度、CO、CO2、PM2.5等各项指标,并将数据上报至APP客户端,用户可根据反馈的数据信息动态控制净化系统。


01

系统设计原理

气体传感器通过与stm32f767的模拟转数字接口 进行数据交互,MCU将获取的数据通过WIFI模组进行智能家居气体与机智云IOT平台物联,并实时上报至云端,用户可根据APP客户端来读取传感器的数据,用户根据反馈开启净化系统(见图1)。

682c5d64-2fbc-11ee-bbcf-dac502259ad0.png

图1 系统设计流程图

02

温湿度及气体浓度获取方法

根据各个传感器的特性曲线得出电压和气体浓度的关系,利用线性回归可以大致确定气体的浓度值。◆MQ-7一氧化碳气体浓度获取方法MQ-7灵敏度特性曲线(见图2)。 根据曲线表可以列出部分Rs/R0与ppm的对应值, 如表1。Rs/R0与ppm的计算公式,如下(根据Excel生成的公式):ppm=98.322f*pow(Rs/R0,-1.458f )。传感器的表面电阻Rs,是通过与其串联的负载电阻RL上的有效电压信号VRL输出而获得的。二者之间的关系为: Rs/RL = (Vc - VRL) / VRL 。根据上述的分析即可得出一氧化碳的浓度。684fa102-2fbc-11ee-bbcf-dac502259ad0.png图2灵敏度特性曲线


687a47b8-2fbc-11ee-bbcf-dac502259ad0.png◆MG811二氧化碳浓度获取如图3浓度的对数成反比(EMF=a+b*log(ppm)。将相关的数值算对数之后,按线性关系来处理。ppm=10^((EMF-a)/b)。a和b通过对300ppm以上的数据做线性回归得到。688f5d74-2fbc-11ee-bbcf-dac502259ad0.png图3 MG811浓度与电压的曲线


◆PM2.5浓度获取PM2.5浓度与电压的曲线如图4所示。关于烟的检出、判定值,可以检出的范围= 输出电压范围:VoH(V)- 无尘时输出电压:Voc(V)。将此换算成粉尘浓度:检出粉尘浓度范围(mg/m3 )=检出可能范围 (输出电压可变范围(V))÷检出感浓度:K(V/(0.1mg/m3 )。因此,烟检出的情况下,其判定值如下:判定值 = 检出浓度(mg/m3)÷10×K(V/(0.1mg/m3)+无尘时输出电压(V)。68da54be-2fbc-11ee-bbcf-dac502259ad0.png图4PM2.5浓度与电压的曲线


DHT11温湿度数据获取

DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次传输4 0位数据,高位先出。



69032362-2fbc-11ee-bbcf-dac502259ad0.png图5 DHT11实物图DHT11的总体通信流程如下:


*第一步:主机发送开始信号,从机返回一个信号进行应答


*第二步:主机信号线拉高准备接收数据


*第三步:开始接收数据(一次接收 40位)◆排气系统控制方案确定利用STM32F767来实现排气系统通断的控制,使用电机驱动模块和升压模块驱动电机工作。

03

Android应用开发


使用Android Studio进行APP应用开发通过APP客户端实时读取气体和温湿度数据和通过APP客户端对设备进行动态控制。整体框架搭建如图6所示。

691c59ae-2fbc-11ee-bbcf-dac502259ad0.png

图6整体架构搭建

04

程序设计

UI 遵循QMUI的设计原则,实现了良好的页面响应以及基于机智云平台的应用。◆主要界面


*闪屏页:APP每次冷启动过程中展示给用户的过渡页面

*WIFI登入界面:用户需要通过登入WIFI查看云端返回到客户端的数据

*主设备界面:显示用户创建的设备

*控制界面:用户对数据进行监控和控制净化系统的页面

◆主要功能* 云端通信:使用机智云设备接入SDK来进行APP与设备之间的数据透传、设备的监控和动态控制。用户可以检查控制界面返回的数据信息对终端设备进行动态控制或者自动控制。6959bc18-2fbc-11ee-bbcf-dac502259ad0.png6971ae40-2fbc-11ee-bbcf-dac502259ad0.png

05

总 结

本文设计了一种空气质量检测和净化设计,其关键是设计获取传感器电压数据转换成对应的值,同时将数据上报至APP,用户可根据反馈的数据信息动态控制净化系统。本研究基于实验的基础上设置气体和温湿度的阈值。测试结果表明,本文设计可实现气体的浓度检测和净化。


关键字:STM32 引用地址:机智云云平台+STM32的智能家居空气检测及净化设计

上一篇:一种基于STM32的光功率计的设计与实现
下一篇:STM32 ADC模拟看门狗过程实现

推荐阅读最新更新时间:2024-11-08 11:58

STM32 PA15 设置成下拉输入却总是高电平
原因:STM32上电时默认打开JTAG调试功能。 解决办法: 打开复用时钟,禁止JTAG功能。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 改变指定管脚的映射完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);改变指定管脚的映射,JTAG-DP 禁用 + SW-DP 使能 这之后PA15就是普通IO口了。
[单片机]
stm32快速学习5——串口中断接收
串口自发自收 设定串口时钟 设定引脚功能 中断优先级 设定串口 Main文件 #include stm32f10x.h void RCC_Configuration(void); void GPIO_Configuration(void); void USART_Configuration(void); void NVIC_Configuration(void); int main(void) { RCC_Configuration(); GPIO_Configuration(); NVIC_Configuration(); USART_Configuration();
[单片机]
STM32】窗口看门狗概述、寄存器、库函数(WWDG一般步骤)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第18章 窗口看门狗 窗口看门狗概述 窗口看门狗的定义 窗口看门狗之所以称为窗口,就是因为其喂狗时间是一个有上下限的范围内(窗口),可以通过设定相关寄存器,设定其上限时间(但是下限是固定的0x3F)。也就是说:喂狗的时间不能过早,也不能过晚。 而对比与独立看门狗,独立看门狗限制喂狗时间在0-x内,x由相关RLR寄存器决定。 窗口看门狗的必要性: 对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了; 如果使用窗口
[单片机]
【<font color='red'>STM32</font>】窗口看门狗概述、寄存器、库函数(WWDG一般步骤)
STM32串口发送字符串函数
最近由于要调试一个SMS发送短信的模块,该模块需要发送一系列AT指令,且需要字符串发送,但是STM32官方给的usart.c中并没有直接发送字符串的函数,因此写了一个发送字符串的函数。 其实发送字符串的本质还是发送一个个字符,所以只需在字符串结束标志之前,循环发送字符即可。不罗嗦,上程序。 //程序功能:利用串口发送一个字符串 // 参数:USARTx USART编号 可取 USART1、USART2、USART3、USART4、 USART5(STM32F103ZET6) str
[单片机]
STM32驱动多个超声波模块(只用一个定时器)
用STM32单片机成功驱动一个超声波模块后,接下来便有了疑问如何用stm32单片机驱动多个超声波模块呢?(驱动一个超声波模块可以参考:stm32驱动超声波模块测距) 超声波模块型号为HC-SR04,模块驱动方式选择利用外部中断的方式驱动(具体细节可参见上面链接)。 经过一个下午的思考实验发现了两种驱动多个超声波模块的方法: 分时测量 同时测量 1.分时测量: 通过类似于实现流水灯的方法,多个超声波模块依次测量并将测量结果依次输出。 优点:各个超声波模块测量过程中不会出现相互干扰的情况。 缺点:整体测量周期长,数据采样频率比较低。 这里有几个问题点需要注意: 一个超声波模块需要在测量完成后再开始下一个模块的测量 超声波模块在
[单片机]
stm32专题二十六:输入捕获 脉宽测量
硬件设计: 脉宽测量原理: 当按键没有按下时,由硬件电路自动拉低。如果按键按下,则PA0产生上升沿,我们进行脉宽测量时,首先设置为上升沿捕获,然后在第一次捕获到上升沿时,将计数器清零,并设置捕获极性为下降沿捕获。当第二次捕获到信号时,就是一个完整的高电平时间。值得注意的是,如果定时器溢出频率为72M(预分频系数71)时,最大计数值为65536us,要考虑溢出(更新中断)。 代码如下,非常简单。 bsp_GeneralTim.c #include bsp_GeneralTim.h // 定时器输入捕获用户自定义变量结构体定义 TIM_ICUserValueTypeDef TIM_ICUserValueStru
[单片机]
<font color='red'>stm32</font>专题二十六:输入捕获 脉宽测量
STM32单片机简易定时器PWM输出
由于RCC- CFGR时钟配置寄存器中 APB1设置为2分频,所以TIM3就是其倍频==72M 上次我发表的STM32单片机自带PWM输出实验大家可以参考学习: http://www.51hei.com/mcu/2123.html ,这次是用定时器产生的pwm. //----------------------------------定时器-----------time.c----------- #include time.h void time_init(u16 arr,u16 psc) { RCC- APB1ENR|=1 1; //TIM2定时器时钟使能 TIM3- ARR=arr; //设置重装
[单片机]
<font color='red'>STM32</font>单片机简易定时器PWM输出
stm32常见错误与工程模板
1.新建工程的时候编译出现如下错误(MDK4.12 使用v3.4的库) ..CMSISstm32f10x.h(80): error: #35: #error directive: Please select first the target STM32F10x device used in your application (in stm32f10x.h file) 解决方法:双击错误进入出错的地方,在stm32f10x.h处 #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM
[单片机]
<font color='red'>stm32</font>常见错误与工程模板
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved