stm32项目(28)——基于stm32的环境监测并上传至onenet云平台
1.设计需求
用STM32F103C8T6,DHT11,MQ-4,GP2Y1010AU0F,esp8266,OLED等模块,
采集环境温度、湿度、PM2.5、瓦斯浓度等参数,并且在OLED屏幕上显示。
瓦斯浓度设置报警阈值,超过阈值报警,并且打开风扇通风。阈值通过按键调整。
配置WIFI模块,将数据发送到ONENET云平台,在电脑端进行显示。
硬件包括传感器、放大电路、A/D、显示、报警、电源等部分。
2.原理图
3.功能演示
基于STM32的环境监测系统并发送至OneNet云平台
4.主要模块
4.1烟雾传感器
MQ-2是一种广泛使用的半导体式气敏传感器,主要用于检测可燃气体(如甲烷、丙烷、氢气)和烟雾浓度,适用于火灾预警、燃气泄漏监测等场景。其特点是成本低、响应快,但需要预热稳定时间。
1. 基本特性
-
检测气体:
-
可燃气体(甲烷、丙烷、丁烷、氢气等)
-
烟雾(如木材、纸张燃烧产生的烟雾)
-
-
工作电压:5V DC(部分模块支持3.3V)
-
输出信号:
-
模拟输出(AO):电压值(0~5V)随气体浓度变化
-
数字输出(DO):阈值触发(高/低电平)
-
-
预热时间:约20~30秒(初次上电需稳定)
-
灵敏度调节:通过电位器调整数字输出的触发阈值
2. 硬件接口(4引脚)
引脚 | 功能 | 连接说明 |
---|---|---|
VCC | 电源(5V) | 接单片机5V引脚 |
GND | 接地 | 接单片机GND |
DO | 数字信号输出 | 接单片机GPIO(如D2) |
AO | 模拟信号输出 | 接单片机ADC引脚(如A0) |
📌 注意:
部分模块自带比较器(LM393),可通过电位器调节数字输出的触发阈值。
若单片机为3.3V系统(如STM32),需确认模块是否兼容3.3V逻辑电平。
3. 信号传输与数据解析
(1) 模拟输出(AO)
-
输出电压随气体浓度升高而增大(0~5V)。
-
单片机通过ADC读取电压值,并映射为浓度:
-
需校准:在洁净空气中读取基准值,再对比目标气体浓度。
(2) 数字输出(DO)
-
当气体浓度超过阈值时,DO引脚输出低电平(触发报警)。
-
阈值可通过模块上的电位器调节。
本次工程,使用它的AO引脚,将模拟电压转换为浓度即可
4.2PM2.5传感器
GP2Y1014AU粉尘传感器
该模块驱动代码:
float GetGP2Y(void)
{
u32 AD_PM;
double pm;
GP2Y_LED=0;
delay_us(280);
AD_PM = Get_Adc(ADC_Channel_0); //PA0
delay_us(40);
GP2Y_LED=1;
delay_us(9680);
pm = (0.17*(5*AD_PM/4096.0)-0.1)*1000; //转换公式 单位:ug/m3
return pm;
}
5.源文件
压缩包内有代码、原理图、代码讲解视频、材料清单等等
基于STM32的环境监测系统并发送至OneNet云平台资源-CSDN下载https://download.csdn.net/download/guangali/91670509?spm=1001.2014.3001.5501