当前位置: 首页 > news >正文

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

http://www.dtcms.com/a/331861.html

相关文章:

  • 手机实时提取SIM卡打电话的信令声音-整体解决方案规划
  • Linux新手上路 | 在Ubuntu上Pluma文本编辑器的安装与基本使用
  • 大模型部署基础设施搭建 - Open WebUI
  • 小知识:for of,for in与forEach
  • Stable Diffusion Models are Secretly Good at Visual In-Context Learning
  • localhost:5501与本机ip:5501不同源
  • 服务器的安全检测和防御技术
  • Video-R1论文解读
  • 【深度学习新浪潮】VGGT论文分析
  • docker 如何下载安装配置使用
  • 数据结构:树(Tree)
  • c++中的Lambda表达式详解
  • Linux 对 YUM 包的管理
  • 20250814荣品RD-RK3588开发板在Rockchip原厂的buildroot【linux-5.10】下让eth0网卡跑iperf2测试网速
  • 机器学习初学
  • Linux 编译过程中遇到 TMPDIR 空间不足的问题
  • FPGA读取AHT20温湿度模块思路及实现,包含遇到的问题(IIC协议)
  • 举例说明环境变量及 PATH 的作用
  • ODE-by-Matlab-01-人口增长模型
  • Java进阶学习之Stream流的基本概念以及使用技巧
  • 不用编程不用组态,实现各种PLC之间数据通讯的网络结构示意图
  • Cookie、Session、Token详解
  • week1-[分支嵌套]公因数
  • P1281 [CERC1998] 书的复制
  • 跨域及解决方案
  • Product Hunt 每日热榜 | 2025-08-14
  • httpx 设置速率控制 limit 时需要注意 timeout 包含 pool 中等待时间
  • Effective C++ 条款40:明智而审慎地使用多重继承
  • 20道Vue框架相关前端面试题及答案
  • Uniapp 中 uni.request 的二次封装