基于STM32的环境检测系统(DHT11、BMP280、1602、MQ2)

基于STM32的环境检测系统

闲来无事,用手头STM32做个项目。

成品功能: 功能说明


材料

  • STM32ZET6开发板
  • LCD1602显示屏
  • DHT11温湿度模块
  • BMP280大气压强模块
  • MQ2烟雾传感器
  • 杜邦线
  • 用keil5进行开发

开始制作。

制作过程

DHT11、烟雾传感器、大气压强传感器检测数据,LCD1602显示数据。屏幕显示具体信息。

说明
DHT11采用单总线数据传输,烟雾传感器采用ADC采集,BMP280采用IIC数据传输形式,LCD1602采用并行数据传输。

LCD1602

这是LCD1602模块
请添加图片描述
LCD1602共16个引脚,采用八位数据传输。
第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度弱
接地时对比度限高,对比度过高时会产生“鬼影”,
使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时
选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行
写操作。当RS和R/W共同低电平为时可以写入指
令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号
,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执
行命令。
第7~脚:D0 ~ D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。

DHT11

这是DHT11模块
请添加图片描述
DHT11采用单总线数据传输,即一根数据线既传输数据也传输时钟。
在这里插入图片描述
这是DHT11的数据时序图,根据此来编写代码。

烟雾传感器

这是LCD1602模块
在这里插入图片描述
烟雾传感器可以控制数字输出还是模拟输出。这里我们通过后边电位器设置一个阈值合适的阈值之后,用数字输出。

接上各个模块,进行综合测试
在这里插入图片描述

嗯。效果很好。可以看到,可以检测到各种数据。
逻辑完善
设置各种阈值,超限之后提醒等等等。

效果视频:https://www.bilibili.com/video/BV1A341157DH

后续还可以做上位机,参照https://blog.csdn.net/weixin_42320020/article/details/89219437

最后附上完整的项目文件。自行下载。
https://download.csdn.net/download/weixin_42320020/83029830

这个项目到这里就算完了。
还有很多不足的地方,希望大佬可以指正。也希望和爱好者交流学习。

禁止转载!!!
博客:https://blog.csdn.net/weixin_42320020/?type=blog
QQ:2039723308
VX:Shiboven

  • 4
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
stm32f103是一款基于ARM Cortex-M3内核的微控制器,它具有丰富的外设资源和强大的处理能力,非常适合用于各种物联网设备的开发。 BMP280是一种高精度、低功耗的数字式气压传感器,可以用于测量大气压强、温度和湿度等环境参数。 要在stm32f103上读取BMP280的数据,首先需要配置模拟I2C通信。模拟I2C通信使用的是GPIO口模拟I2C的数据线和时钟线。你需要先配置好GPIO口为输出模式,并设置I2C的起始信号、停止信号等操作。 然后,你需要编写代码来实现通过模拟I2C通信读取BMP280的数据。首先发送I2C的起始信号,然后发送设备地址和寄存器地址,接下来发送读取命令,并等待BMP280的响应。当BMP280响应时,你可以通过模拟I2C通信逐位读取数据,并保存在相应的变量中。 读取完数据后,需要发送I2C的停止信号来结束通信。最后,你可以使用读取到的数据进行进一步的处理和显示。 需要注意的是,模拟I2C通信的速度较慢,而且对于一些要求高速传输的场景可能不适用。如果在项目中有更高的速度要求,建议使用硬件I2C来进行通信。 总结起来,要在stm32f103上使用模拟I2C通信读取BMP280的数据,你需要配置GPIO口为输出模式,并设置I2C的起始信号、停止信号等操作。然后,通过模拟I2C通信逐位读取数据,并保存在相应的变量中。最后,使用读取到的数据进行进一步的处理和显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

释博文

您的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值