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

基于51单片机的温湿度监测

基于51单片机的温湿度监测系统设计

第一章 绪论

温湿度监测是农业大棚、仓储环境、智能家居、工业车间等场景的基础需求,51单片机(以STC89C52为代表)凭借成本低廉、编程简单、外设适配性强的特点,成为中小型温湿度监测系统的首选主控单元。传统温湿度监测多依赖人工记录或单一显示仪表,存在数据滞后、无预警、无法追溯的问题,而基于51单片机的监测系统可实现温湿度实时采集、数字化显示、超限告警,兼顾实用性与易用性,适配低成本、小范围的温湿度管控需求。本设计以STC89C52单片机为核心,结合DHT11温湿度传感器构建一套简易且稳定的温湿度监测系统,实现0-50℃、20%-90%RH范围内的精准监测与超限声光告警,满足基础场景的温湿度管理需求。

第二章 系统核心原理与硬件架构

本系统硬件架构以STC89C52单片机为核心,分为核心控制模块、温湿度采集模块、显示模块、告警模块、电源模块五部分,结构简洁且易搭建:

  1. 核心控制模块:选用STC89C52单片机,其内置定时器/计数器、通用I/O口可满足传感器数据读取、显示驱动、告警控制需求;最小系统包含5V稳压供电、11.0592MHz晶振、复位电路,支持USB/电池双供电,适配便携/固定部署场景。
  2. 温湿度采集模块(核心):采用DHT11数字温湿度传感器,通过单总线协议与单片机GPIO口通信,无需额外ADC转换;DHT11测温范围0-50℃(精度±2℃),测湿范围20%-90%RH(精度±5%RH),采样周期设为2秒,兼顾实时性与功耗。
  3. 显示模块:选用LCD1602字符显示屏,通过并行I/O口与单片机连接,实时显示“Temp: XX℃ Hum: XX%RH”,直观呈现温湿度数据;LCD1602自带背光,适配暗光环境查看。
  4. 告警模块:采用蜂鸣器+双色LED灯实现超限告警——
    • 正常状态:绿色LED常亮,蜂鸣器静音;
    • 超限状态:红色LED闪烁(1Hz),蜂鸣器间断鸣响(1Hz),提示温湿度超出预设阈值;
      阈值可通过代码预设(如温度≥30℃/≤10℃、湿度≥80%/≤30%),也可扩展按键实现自定义修改。
  5. 电源模块:采用5V USB供电(兼容手机充电器/移动电源),或4节5号电池(6V转5V稳压),加入防反接保护,输出纹波≤100mV,保障传感器与单片机稳定工作。

第三章 系统软件设计与功能实现

系统软件基于Keil C51编译器开发,采用模块化编程思路,核心流程为“初始化→传感器数据读取→数据处理→显示→超限判断→告警”,代码简洁易理解,适合新手学习与调试:

3.1 核心代码实现
#include<reg52.h>#include<intrins.h>// 端口定义sbit DHT11_DQ=P1^0;// DHT11数据引脚sbit LCD_RS=P2^0;// LCD1602寄存器选择sbit LCD_RW=P2^1;// LCD1602读写控制sbit LCD_EN=P2^2;// LCD1602使能sbit LED_GREEN=P3^0;// 绿色LEDsbit LED_RED=P3^1;// 红色LEDsbit BUZZER=P3^2;// 蜂鸣器// 温湿度存储变量unsignedcharhum_high,hum_low,temp_high,temp_low;// 告警阈值(可自定义)#defineTEMP_MAX30// 温度上限#defineTEMP_MIN10// 温度下限#defineHUM_MAX80// 湿度上限#defineHUM_MIN30// 湿度下限// 延时函数(DHT11通信专用)voiddelay_us(unsignedintus){while(us--);}voiddelay_ms(unsignedintms){unsignedinti,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}// LCD1602写命令voidLCD_WriteCmd(unsignedcharcmd){LCD_RS=0;LCD_RW=0;P0=cmd;LCD_EN=1;delay_ms(1);LCD_EN=0;}// LCD1602写数据voidLCD_WriteData(unsignedchardat){LCD_RS=1;LCD_RW=0;P0=dat;LCD_EN=1;delay_ms(1);LCD_EN=0;}// LCD1602初始化voidLCD_Init(){LCD_WriteCmd(0x38);// 8位接口,2行显示,5*7点阵LCD_WriteCmd(0x0c);// 开显示,关光标LCD_WriteCmd(0x06);// 光标右移,不刷屏LCD_WriteCmd(0x01);// 清屏delay_ms(2);}// DHT11读取温湿度数据bitDHT11_ReadData(){unsignedchari,buf[5];// 主机发送起始信号DHT11_DQ=0;delay_ms(20);DHT11_DQ=1;delay_us(30);// 等待DHT11响应if(DHT11_DQ==0){while(DHT11_DQ==0);// 等待响应低电平结束while(DHT11_DQ==1);// 等待准备低电平开始// 读取40位数据for(i=0;i<5;i++){buf[i]=0;for(unsignedcharj=8;j>0;j--){while(DHT11_DQ==0);// 等待数据位低电平结束delay_us(40);// 判定高电平时长if(DHT11_DQ==1)buf[i]|=(1<<(j-1));while(DHT11_DQ==1);// 等待数据位高电平结束}}// 校验(字节0+1+2+3=字节4)if(buf[0]+buf[1]+buf[2]+buf[3]==buf[4]){hum_high=buf[0];// 湿度整数部分hum_low=buf[1];// 湿度小数部分(DHT11恒为0)temp_high=buf[2];// 温度整数部分temp_low=buf[3];// 温度小数部分(DHT11恒为0)return1;}}return0;}// 温湿度显示voidDisplay_Data(){// 第一行显示温度LCD_WriteCmd(0x80);// 光标定位到第一行第1列LCD_WriteData('T');LCD_WriteData('e');LCD_WriteData('m');LCD_WriteData('p');LCD_WriteData(':');LCD_WriteData(temp_high/10+'0');LCD_WriteData(temp_high%10+'0');LCD_WriteData('C');// 第二行显示湿度LCD_WriteCmd(0xC0);// 光标定位到第二行第1列LCD_WriteData('H');LCD_WriteData('u');LCD_WriteData('m');LCD_WriteData(':');LCD_WriteData(hum_high/10+'0');LCD_WriteData(hum_high%10+'0');LCD_WriteData('%');LCD_WriteData('R');LCD_WriteData('H');}// 超限告警判断voidAlarm_Check(){if(temp_high>TEMP_MAX||temp_high<TEMP_MIN||hum_high>HUM_MAX||hum_high<HUM_MIN){LED_GREEN=1;// 关闭绿灯LED_RED=0;// 红灯闪烁BUZZER=0;// 蜂鸣器响delay_ms(500);LED_RED=1;BUZZER=1;delay_ms(500);}else{LED_GREEN=0;// 绿灯常亮LED_RED=1;// 关闭红灯BUZZER=1;// 关闭蜂鸣器}}// 主函数voidmain(){LCD_Init();LED_GREEN=0;// 初始绿灯常亮LED_RED=1;BUZZER=1;while(1){if(DHT11_ReadData()){// 成功读取数据Display_Data();// 显示温湿度Alarm_Check();// 告警判断}delay_ms(2000);// 2秒采样一次}}
3.2 代码关键说明
  1. DHT11通信:通过单总线协议实现,核心是严格的时序控制(起始信号、响应信号、数据位读取),代码中延时函数需根据实际单片机主频微调;
  2. LCD1602驱动:采用并行方式驱动,指令简单,重点是光标定位(0x80对应第一行,0xC0对应第二行);
  3. 告警逻辑:判断温湿度是否超出预设阈值,超限则触发红LED闪烁+蜂鸣器鸣响,正常则绿灯常亮;
  4. 采样周期:设置为2秒,避免频繁采样导致传感器数据不稳定。

第四章 系统测试与验证

4.1 测试环境与步骤
  1. 硬件搭建:按电路图连接51单片机、DHT11、LCD1602、LED、蜂鸣器,确保接线无误(尤其DHT11的VCC接5V,GND接地,DATA接P1^0);
  2. 程序下载:通过ISP下载器将编译后的hex文件写入STC89C52;
  3. 功能测试
    • 正常环境:LCD显示当前温湿度,绿灯常亮,无告警;
    • 超限测试:用手捂住DHT11(升温增湿),当温度≥30℃或湿度≥80%时,红灯闪烁+蜂鸣器鸣响;
    • 恢复测试:移开手,温湿度回落至阈值内,系统恢复绿灯常亮,告警停止。
4.2 测试结果
  • 温湿度采集误差:温度±1℃,湿度±3%RH,符合DHT11的标称精度;
  • 显示效果:LCD1602数据刷新稳定,无乱码;
  • 告警响应:超限后1秒内触发告警,恢复后立即停止,逻辑准确;
  • 功耗:5V供电时整机电流≤50mA,4节5号电池可连续工作≥8小时。

总结

  1. 本设计基于51单片机+DHT11实现了温湿度的实时采集、显示与超限告警,硬件电路简洁,代码易理解,适合新手入门;
  2. DHT11采用单总线通信,无需ADC,大幅简化硬件设计,LCD1602直观展示数据,分级告警提升实用性;
  3. 系统成本≤30元,可通过扩展按键(修改阈值)、EEPROM(保存历史数据)、串口(数据上传)实现功能升级,适配更多场景。

    文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
    所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。
http://www.jsqmd.com/news/374824/

相关文章:

  • Java毕设项目:基于springboot的粮库设备管理系统设计与实现(源码+文档,讲解、调试运行,定制等)
  • 雅思培训红黑榜,高通过率机构大揭秘! - 品牌测评鉴赏家
  • I.MX6U 开发板网络环境搭建----(电脑 WiFi 上网,开发板和电脑直连)--虚拟机双网口实现-- Ubuntu20.04
  • 2026必备!降AIGC工具 千笔AI VS 灵感ai 专科生专属神器
  • 【毕业设计】基于springboot的粮库设备管理系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 写论文效率低?2026 年 AI 论文软件排行榜权威发布,效率提升 10 倍不是梦!
  • 开题卡住了?8个AI论文工具深度测评,本科生毕业论文写作必备指南
  • 51单片机密码锁的设计
  • 【计算机毕业设计案例】基于springboot的粮库设备管理系统基于java的粮库设备维护管理系统(程序+文档+讲解+定制)
  • 2026最新!AI论文写作软件 千笔ai写作 VS WPS AI,专科生高效写作神器!
  • 基于51单片机和Proteus的智能停车场设计
  • 剪映专业版曲线变速完全教程:从恒定变速到自由调速
  • 2026别错过!降AIGC软件 千笔·降AI率助手 VS 锐智 AI,研究生专属降重神器
  • 89C51单片机汽车尾灯设计
  • 回收天虹提货券前必读清单 - 京顺回收
  • 导师推荐 10个 AI论文软件:自考毕业论文写作必备工具测评与推荐
  • 【毕业设计】基于springboot的停车场收费管理系统设计与实现(源码+文档+远程调试,全bao定制等)
  • MATLAB与FlightGear联合仿真教程PDF,加上simulink工程文件
  • MrBeast收购Gen Z金融科技应用Step
  • 算法学习日记 | 差分
  • 多云失控预警:终端风险激增下的破局之道
  • 2026年全国二手设备回收厂家权威榜单 助力各类场景资源高效再生 覆盖多业态适配与资源循环 - 深度智识库
  • 【毕业设计】基于springboot的小学阶段图形化编程竞赛辅导网站设计与实现(源码+文档+远程调试,全bao定制等)
  • 基于深度学习的行为预测:从LSTM到GNN与Transformer,如何更好地编码场景上下文?
  • 闲置沃尔玛超市购物卡别愁!3种实测有效回收方法,轻松变现不浪费 - 京回收小程序
  • FFMpeg全解析:从“万能媒体转换器”到工程化音视频管线的底层逻辑 - 教程
  • Facebook推出AI功能:可为头像和动态添加动画效果
  • 众测
  • 荷兰数据保护局遭遇Ivanti零日攻击后主动报告数据泄露
  • 2026年最新版腾讯手游助手下载与使用详解:从安装配置到性能优化的完整方案 - PC修复电脑医生