1 系统功能介绍

本设计是一套 基于51单片机的环境监测系统,能够实时采集环境光照、PM2.5、温湿度等参数,并通过 2.4G无线模块 NRF24L01 实现数据传输。系统具备本地显示与报警功能,可通过按键设置各类阈值和时间,方便用户进行环境管理与监控。系统综合应用了传感器技术、无线通信技术和液晶显示技术,适用于家庭、办公室以及小型公共场所的环境监控。

系统主要功能包括:

  1. 温湿度监测功能:通过 DHT11 传感器采集环境温度和湿度值,并在 LCD12864 上显示。
  2. 粉尘浓度检测功能:利用 GP2Y1050AU0F PM2.5 传感器实时采集空气粉尘浓度,显示在液晶屏上,同时支持超标报警。
  3. 光照强度监测功能:采用 BH1750FVI 光强传感器获取环境光照强度,并直观显示在 LCD12864 上。
  4. 无线通信功能:系统通过 NRF24L01 模块实现与远端主控系统的数据通信,可上传实时监测数据,便于远程管理。
  5. 阈值报警功能:通过按键设置温湿度上下限和 PM2.5 上限,当测量值超出设定范围时,蜂鸣器报警并 LED 指示灯点亮提示。
  6. 时间与日期设置功能:用户可通过按键调整系统时间和日期,确保数据记录准确。
  7. 人机交互功能:采用 LCD12864 显示中文信息,清晰显示各项监测数据,并配合按键实现参数设置,操作直观方便。

该系统将传感器数据采集、无线通信、数据显示和报警控制结合在一起,实现了环境监测的智能化和远程管理能力。


2 系统电路设计

本系统由多个功能模块组成,各模块相互协作,完成数据采集、处理、显示、报警和无线通信。以下对每个模块进行详细介绍。

2.1 单片机最小系统

  • 核心芯片:STC89C52 单片机,基于 8051 内核,具有丰富的 I/O 口和定时器资源。

  • 功能

    • 接收来自各类传感器的数据信号;
    • 执行阈值判断、报警逻辑以及无线数据发送;
    • 驱动 LCD12864 显示监测数据和设置界面;
    • 控制蜂鸣器和 LED 指示灯。
  • 设计要点

    • 外接晶振电路,保证单片机稳定运行;
    • 上电复位电路确保系统可靠启动。

2.2 LCD12864 液晶显示模块

  • 功能:以中文形式显示环境监测数据,包括温度、湿度、PM2.5、光照强度、时间及日期等信息。

  • 显示设计

    • 第一屏显示温湿度及其上下限;
    • 第二屏显示 PM2.5 浓度及光照强度;
    • 可动态切换显示设置界面。
  • 电路特性

    • 采用 8 位并口与单片机通信;
    • 外接电位器调节对比度。

2.3 温湿度传感器 DHT11

  • 功能:采集环境温度和湿度。

  • 接口:单线接口,单片机通过定时读取数据。

  • 设计注意

    • 添加上拉电阻保证数据传输稳定;
    • 采集周期根据应用需求设置,一般 2 秒更新一次。

2.4 PM2.5 粉尘传感器 GP2Y1050AU0F

  • 功能:采集空气中粉尘浓度,并输出模拟电压。

  • 电路设计

    • 通过单片机的 ADC 输入读取电压值;
    • 采用稳压电源和滤波电路提高信号精度。
  • 注意事项:在使用过程中需要定时清理传感器入口,确保数据准确。

2.5 光照传感器 BH1750FVI

  • 功能:检测环境光照强度(单位 lux)。

  • 接口:I2C 总线与单片机通信,节省 I/O 资源。

  • 电路设计

    • SDA 和 SCL 通过上拉电阻接 VCC;
    • 稳定电源供电,避免光照值测量波动。

2.6 按键模块

  • 功能:用于设置温湿度上下限、PM2.5 上限、日期时间等参数。

  • 设计方式

    • 多按键组合实现加、减、确认、切换功能;
    • 单片机内部上拉电阻,按键按下输入低电平;
    • 软件防抖处理确保稳定操作。

2.7 蜂鸣器与 LED 报警模块

  • 蜂鸣器功能:超标报警提示。

  • LED 功能:超标时点亮,提供直观指示。

  • 电路设计

    • 蜂鸣器为有源类型,由单片机 I/O 口驱动;
    • LED 通过限流电阻连接,保证安全工作电流。

2.8 NRF24L01 无线模块

  • 功能:实现 2.4G 无线数据传输,发送环境数据到远端接收端。

  • 接口:SPI 总线,与单片机通信。

  • 设计要点

    • 电源要求稳定 3.3V,防止模块重启;
    • 天线方向对准远端接收器,保证通信距离与稳定性;
    • 需要对通信地址和频道进行配置,避免干扰。

3 程序设计

系统程序采用模块化设计,主要包括初始化、数据采集、显示、按键处理、阈值判断、报警控制和无线通信等模块。

3.1 系统初始化

#include <reg52.h>
#include "lcd12864.h"
#include "dht11.h"
#include "bh1750.h"
#include "pm25.h"
#include "nrf24l01.h"unsigned int temp, hum; 
unsigned int pm25_value;
unsigned int lux;
unsigned int temp_upper=30, temp_lower=20;
unsigned int hum_upper=70, hum_lower=40;
unsigned int pm25_upper=150;void System_Init(void){LCD12864_Init();DHT11_Init();BH1750_Init();PM25_Init();NRF24L01_Init();LCD12864_ShowString(0,0,"Env Monitor Init...");
}

3.2 温湿度采集模块

void Read_TempHum(void){DHT11_Read(&temp,&hum);
}

3.3 PM2.5 采集模块

void Read_PM25(void){pm25_value = PM25_Read();
}

3.4 光照采集模块

void Read_Light(void){lux = BH1750_Read();
}

3.5 LCD 显示模块

void Display_Data(void){LCD12864_Clear();LCD12864_ShowString(0,0,"Temp:");LCD12864_ShowNum(6,0,temp,2);LCD12864_ShowString(10,0,"C");LCD12864_ShowString(0,1,"Hum:");LCD12864_ShowNum(4,1,hum,2);LCD12864_ShowString(8,1,"%");LCD12864_ShowString(0,2,"PM2.5:");LCD12864_ShowNum(6,2,pm25_value,3);LCD12864_ShowString(0,3,"Light:");LCD12864_ShowNum(6,3,lux,4);
}

3.6 按键设置模块

void Key_Scan(void){if(KEY_SET == 0){// 进入设置模式}if(KEY_ADD == 0){// 增加当前参数}if(KEY_SUB == 0){// 减少当前参数}
}

3.7 阈值判断与报警模块

sbit BEEP = P2^0;
sbit LED = P2^1;void Alarm_Control(void){if(temp>temp_upper || temp<temp_lower || hum>hum_upper || hum<hum_lower || pm25_value>pm25_upper){BEEP=0; // 报警LED=0;} else {BEEP=1;LED=1;}
}

3.8 NRF24L01 数据传输模块

void Wireless_Upload(void){char buf[32];sprintf(buf,"T:%d,H:%d,PM:%d,L:%d",temp,hum,pm25_value,lux);NRF24L01_Send(buf);
}

3.9 主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94941.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94941.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94941.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Flask】测试平台开发,产品管理实现添加功能-第五篇

概述在前面的几篇开发文章中&#xff0c;我们只是让数据在界面上进行了展示&#xff0c;但是没有添加按钮的功能&#xff0c;接下来我们需要开发一个添加的按钮&#xff0c;用户产品功能的创建和添加抽公共数据链接方法添加接口掌握post实现和请求数据处理前端掌握Button\Dilog…

循环高级(2)

6.练习3 打印九九乘法表7.练习3 制表符详解对齐不了原因&#xff1a;name补到8zhangsan本身就是8&#xff0c;补完就变成16解决办法&#xff1a;1.去掉zhangsan\t,这样前后都是82.name后面加2个\t加一个\t&#xff0c;name\t就是占8个&#xff0c;再加一个\t&#xff0c;就变成…

盒马生鲜 小程序 逆向分析

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析 部分python代码 params {&…

【Linux系统】线程控制

1. POSIX线程库 (pthreads)POSIX线程&#xff08;通常称为pthreads&#xff09;是IEEE制定的操作系统线程API标准。Linux系统通过glibc库实现了这个标准&#xff0c;提供了创建和管理线程的一系列函数。核心特性命名约定&#xff1a;绝大多数函数都以 pthread_ 开头&#xff0c…

【Spring Cloud Alibaba】前置知识

【Spring Cloud Alibaba】前置知识1. 微服务介绍1.1 系统架构的演变1.1.1 单体应用架构1.1.2 垂直应用架构1.1.3 分布式架构1.1.3.1 SOA架构1.1.4 微服务架构1. 微服务介绍 1.1 系统架构的演变 随着互联网的发展&#xff0c;网站应用的规模也在不断的扩大&#xff0c;进而导致…

2025互联网大厂Java面试1000道题目及参考答案

Java学到什么程度可以面试工作&#xff1f; 要达到能够面试Java开发工作的水平&#xff0c;需要掌握以下几个方面的知识和技能&#xff1a; 1. 基础扎实&#xff1a;熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础&#xff0c;也…

记录:HSD部署(未完成)

建数据库 相关文档&#xff1a;Confluence准备&#xff1a;CA文件和备份用的aws key。 CA文件&#xff1a;在namespace添加trust-injectionenabled的标签&#xff0c;会自动生成。 aws key&#xff1a;生成cnpg-backup-creds的secret。安装&#xff1a; 从git仓库获取values模…

【AI】提示词与自然语言处理:从NLP视角看提示词的作用机制

提示词与自然语言处理&#xff1a;从 NLP 视角看提示词的作用机制在人工智能快速发展的今天&#xff0c;大模型成为了人们关注的焦点。而要让大模型更好地理解人类意图、完成各种任务&#xff0c;提示词扮演着关键角色。从自然语言处理&#xff08;NLP&#xff09;的角度来看&a…

2025.8.29机械臂实战项目

好久没给大家更新了&#xff0c;上周末大学大四开学&#xff0c;所以停更了几天&#xff0c;回来后在做项目&#xff0c;接下来的几篇文章&#xff0c;给大家带来几个项目&#xff0c;第一个介绍的是机械臂操作&#xff0c;说是机械臂操作&#xff0c;简单来说&#xff0c;就是…

【机器学习基础】机器学习的要素:任务T、性能度量P和经验E

第一章 机器学习的本质与理论框架 机器学习作为人工智能领域的核心支柱,其理论基础可以追溯到20世纪中叶的统计学习理论。Tom Mitchell在其1997年的经典著作《Machine Learning》中给出了一个至今仍被广泛引用的学习定义:"对于某类任务T和性能度量P,一个计算机程序被认…

wav音频转C语言样点数组

WAV to C Header Converter 将WAV音频文件转换为C语言头文件的Python脚本&#xff0c;支持将音频数据嵌入到C/C项目中。 功能特性 音频格式支持 PCM格式&#xff1a;支持8位、16位、24位、32位PCM音频IEEE Float格式&#xff1a;支持32位浮点音频多声道&#xff1a;支持单声道、…

01.《基础入门:了解网络的基本概念》

网络基础 文章目录网络基础网络通信核心原理网络通信定义信息传递过程关键术语解释网络的分类网络参考模型OSI 参考模型各层核心工作分层核心原则TCP/IP 参考模型&#xff08;4 层 / 5 层&#xff0c;实际应用模型&#xff09;TCP/IP 与 OSI 模型的对应关系传输层核心协议&…

基于vue驾校管理系统的设计与实现5hl93(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表&#xff1a;项目功能&#xff1a;学员,教练,教练信息,预约信息,场地信息,时间安排,车辆信息,预约练车,时间段,驾校场地信息,驾校车辆信息,预约报名开题报告内容&#xff1a;一、选题背景与意义背景随着汽车保有量持续增长&#xff0c;驾校行业规模不断扩大&am…

灰度思维:解锁世界原有本色的密码

摘要本文深入探讨灰度思维的概念内涵及其在处理他人评价中的应用价值。研究指出&#xff0c;灰度思维作为一种超越非黑即白的思维方式&#xff0c;能够帮助个体以更客观、全面的态度接受他人评价的片面性&#xff0c;从而促进个人成长和人际关系和谐。文章分析了他人评价片面性…

动态规划--Day03--打家劫舍--198. 打家劫舍,213. 打家劫舍 II,2320. 统计放置房子的方式数

动态规划–Day03–打家劫舍–198. 打家劫舍&#xff0c;213. 打家劫舍 II&#xff0c;2320. 统计放置房子的方式数 今天要训练的题目类型是&#xff1a;【打家劫舍】&#xff0c;题单来自灵艾山茶府。 掌握动态规划&#xff08;DP&#xff09;是没有捷径的&#xff0c;咱们唯一…

Nuxt.js@4 中管理 HTML <head> 标签

可以在 nuxt.config.ts 中配置全局的 HTML 标签&#xff0c;也可以在指定 index.vue 页面中配置指定的 HTML 标签。 在 nuxt.config.ts 中配置 HTML 标签 export default defineNuxtConfig({compatibilityDate: 2025-07-15,devtools: { enabled: true },app: {head: {charse…

UCIE Specification详解(十)

文章目录4.5.3.7 PHYRETRAIN&#xff08;物理层重训练&#xff09;4.5.3.7.1 Adapter initiated PHY retrain4.5.3.7.2 PHY initiated PHY retrain4.5.3.7.3 Remote Die requested PHY retrain4.5.3.8 TRAIN ERROR4.5.3.9 L1/L24.6 Runtime Recalibration4.7 Multi-module Link…

电商数据的获取方式:API、爬虫、第三方服务及更多

在竞争激烈的电商领域&#xff0c;数据是驱动业务增长的关键。准确、及时地获取电商数据&#xff0c;并进行深入分析&#xff0c;能够帮助企业洞察市场趋势、优化运营策略、提升用户体验。本文将全面介绍电商数据的获取方式&#xff0c;涵盖API接口、网络爬虫技术、第三方数据服…

《WINDOWS 环境下32位汇编语言程序设计》第8章 通用对话框

Windows操作系统为一些常用功能提供了一些通用对话框&#xff08;Common Dialog Box&#xff09;&#xff0c;比如&#xff0c;在不同的应用程序中进行打开文件、选择字体、选择颜色等操作时&#xff0c;不同程序显示的对话框的模样都是一样的。另外&#xff0c;把同样的应用程…

SOME/IP-SD协议中组播IP地址和端口号应从何处获取、由谁设置?

<摘要> AUTOSAR SOME/IP-SD协议中组播通信参数的核心配置规则明确规定了在服务端传输&#xff08;Server-Transmits&#xff09;和客户端传输&#xff08;Client-Transmits&#xff09;两种模式下&#xff0c;组播IP地址和端口号应从何处获取、由谁设置&#xff0c;从而确…