基于51单片机的配电室远程监控系统设计与环境检测GSM报警系统

1. 系统功能介绍

本设计是一种基于 STC89C51/STC89C52 单片机 的智能配电室环境监控与报警系统。该系统将温湿度检测、水位检测、烟雾检测、入侵检测与风扇、水泵控制相结合,同时配合 SIM900 GSM 模块 实现远程短信报警功能。系统能够实时监测配电室环境参数,并根据设定阈值自动触发报警与设备控制,从而有效防止因环境异常引发的事故。

主要功能如下:

  1. 环境监测与显示:通过温湿度传感器、烟雾传感器、水位检测模块、红外检测模块等,实时采集配电室环境数据,并在 OLED 屏幕上显示。
  2. 温湿度报警:当温度或湿度超出设定阈值时,系统触发蜂鸣器报警,并通过 GSM 模块向管理人员发送短信提醒。
  3. 水位报警与水泵控制:当水位超过设定值时,系统触发蜂鸣器报警,并自动开启水泵排水,直至水位恢复正常。
  4. 烟雾报警与风扇控制:当检测到烟雾浓度超过阈值时,蜂鸣器报警,并自动开启风扇进行排风,待烟雾浓度下降后关闭风扇。
  5. 入侵检测与报警:通过红外传感器检测非法入侵情况,一旦触发,立即启动蜂鸣器并发送短信报警。
  6. 远程短信通知:利用 SIM900 GSM 模块,系统在检测到环境异常时自动向预设手机号发送报警短信,确保管理人员第一时间获知。
  7. 参数阈值可调:系统提供按键功能,用户可设置温湿度、水位和烟雾的报警阈值,增强系统灵活性。

该系统广泛适用于配电室、机房、仓库等需要实时监控的环境,具有实用性和推广价值。


2. 系统电路设计

本系统电路由 单片机核心电路检测电路显示电路控制电路报警电路按键电路通信电路 七个部分组成。

2.1 单片机核心电路

主控芯片采用 STC89C51/STC89C52 单片机

  • 内部带有丰富的 I/O 资源,适合多传感器输入和外设控制。
  • 通过复位电路与晶振电路保证系统稳定运行。
  • 与外设之间采用 GPIO、ADC、UART 等接口通信。

2.2 温湿度检测电路

温湿度检测模块可选用 DHT11/DHT22 或者通过 PCF8591 ADC 转换读取模拟信号。

  • 温湿度数据实时上传至单片机并显示在 OLED 屏幕。
  • 若数据超出阈值,触发蜂鸣器报警,并通过 GSM 模块发送短信。

2.3 水位检测电路

水位传感器通过电压变化反映水位高度:

  • 模拟信号经 PCF8591 转换为数字信号输入单片机。
  • 当水位超标,单片机控制继电器启动水泵,排水直至水位恢复正常。

2.4 烟雾检测电路

采用 MQ-2/MQ-5 烟雾传感器

  • 输出模拟电压信号,经 PCF8591 转换后送至单片机。
  • 超过设定值时,蜂鸣器报警并启动风扇排风。

2.5 红外入侵检测电路

采用 人体红外传感器(PIR) 检测是否有人进入配电室:

  • 一旦检测到异常,蜂鸣器启动,同时通过 GSM 模块发送入侵报警短信。

2.6 OLED 显示电路

OLED 液晶用于显示实时采集数据,包括:

  • 温度、湿度、水位、烟雾浓度。
  • 当前阈值设定和报警状态。

2.7 控制电路(风扇与水泵)

  • 通过 继电器驱动电路 控制风扇与水泵的开关。
  • 当检测值恢复正常后,自动关闭设备,节省能耗。

2.8 蜂鸣器报警电路

蜂鸣器用于本地报警,提醒管理人员现场检查。

2.9 GSM 短信报警电路

采用 SIM900 GSM 模块,通过 UART 串口与单片机通信:

  • 发送短信至指定手机号码,告知具体报警原因。
  • 支持多条短信报警,保障远程监控的及时性。

2.10 按键电路

按键用于阈值设置,包含:

  • 模式键:切换阈值设置模式。
  • 加键/减键:调整对应参数的报警阈值。

3. 程序设计

程序采用模块化设计,包括 主程序、传感器数据采集模块、显示模块、阈值设置模块、报警模块、GSM 短信通信模块

3.1 主程序框架

#include <reg52.h>
#include "oled.h"
#include "dht11.h"
#include "pcf8591.h"
#include "gsm.h"
#include "key.h"
#include "buzzer.h"void main()
{System_Init();   // 系统初始化while(1){Sensor_Read();     // 采集温湿度、水位、烟雾、入侵数据Display_Data();    // OLED 显示Key_Scan();        // 按键检测,更新阈值Alarm_Check();     // 报警判断}
}

3.2 传感器采集模块

void Sensor_Read(void)
{temp = DHT11_ReadTemp();    humi = DHT11_ReadHumi();    smoke = PCF8591_Read(0);   water = PCF8591_Read(1);   pir = PIR_Read();          
}

3.3 OLED 显示模块

void Display_Data(void)
{OLED_ShowString(0,0,"Temp:");OLED_ShowNum(40,0,temp,3);OLED_ShowString(0,2,"Humi:");OLED_ShowNum(40,2,humi,3);OLED_ShowString(0,4,"Smoke:");OLED_ShowNum(60,4,smoke,3);OLED_ShowString(0,6,"Water:");OLED_ShowNum(60,6,water,3);
}

3.4 阈值设置模块

void Key_Scan(void)
{if(Key_Mode_Pressed()) mode = (mode+1)%4; // 循环切换阈值设置if(Key_Add_Pressed()){if(mode==0) temp_th++;else if(mode==1) humi_th++;else if(mode==2) smoke_th++;else if(mode==3) water_th++;}if(Key_Dec_Pressed()){if(mode==0) temp_th--;else if(mode==1) humi_th--;else if(mode==2) smoke_th--;else if(mode==3) water_th--;}
}

3.5 报警与控制模块

void Alarm_Check(void)
{if(temp > temp_th){Buzzer_On();GSM_Send("温度超标报警!");}if(humi > humi_th){Buzzer_On();GSM_Send("湿度超标报警!");}if(smoke > smoke_th){Buzzer_On();Fan_On();GSM_Send("烟雾超标,风扇已启动!");}else Fan_Off();if(water > water_th){Buzzer_On();Pump_On();GSM_Send("水位超标,水泵已启动!");}else Pump_Off();if(pir == 1){Buzzer_On();GSM_Send("警告!检测到入侵!");}
}

3.6 GSM 短信模块

void GSM_Send(char *msg)
{UART_SendString("AT+CMGF=1\r");   // 设置短信模式Delay_ms(100);UART_SendString("AT+CMGS=\"1234567890\"\r"); // 目标手机号Delay_ms(100);UART_SendString(msg);UART_Send(0x1A); // Ctrl+Z 结束符
}

4. 总结

本系统以 STC89C52 单片机 为核心,整合了温湿度检测、水位检测、烟雾检测与入侵检测,并通过 OLED 屏幕进行数据可视化。同时,系统利用 继电器控制风扇和水泵,在检测到环境异常时进行自动处理。配合 SIM900 GSM 模块,系统实现了远程短信报警功能,确保在无人值守的情况下依旧能保障配电室的安全。

该系统具备 多参数监测、自动化控制、远程报警、阈值可调 等优势,既能满足日常配电室的安全管理需求,也可扩展至机房、仓库、实验室等场景,具有良好的实用性和推广价值。

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

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

相关文章

从RNN到Transformer

从RNN到Transformer 目录 基础篇&#xff1a;序列模型概述RNN循环神经网络LSTM长短期记忆网络Transformer架构时间序列预测应用计算机视觉应用大语言模型应用实战与优化前沿发展 基础篇&#xff1a;序列模型概述 {#基础篇} 什么是序列数据&#xff1f; 序列数据是按照特定顺…

【Java进阶】Java与SpringBoot线程池深度优化指南

Java与SpringBoot线程池深度优化指南Java与SpringBoot线程池深度优化指南一、Java原生线程池核心原理1. ThreadPoolExecutor 核心参数关键参数解析&#xff1a;2. 阻塞队列选择策略3. 拒绝策略对比二、SpringBoot线程池配置与优化1. 自动配置线程池2. 异步任务配置类3. 自定义异…

mysql(自写)

Mysql介于应用和数据之间&#xff0c;通过一些设计 &#xff0c;将大量数据变成一张张像excel的数据表数据页&#xff1a;mysql将数据拆成一个一个的数据页索引&#xff1a;为每个页加入页号&#xff0c;再为每行数据加入序号&#xff0c;这个序号就是所谓的主键。 将每个页的…

Nginx 502 Bad Gateway:从 upstream 日志到 FastCGI 超时复盘

Nginx 502 Bad Gateway&#xff1a;从 upstream 日志到 FastCGI 超时复盘 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般绚烂的技术栈中&#xff0c;我是那个永不停歇的色彩收集者。 &#x1f98b; 每一个优化都是我培育的花朵&#xff0c;每一…

Dreamore AI-解读并描绘你的梦境

本文转载自&#xff1a;Dreamore AI-解读并描绘你的梦境 - Hello123工具导航 ** 一、&#x1f319; 初识 Dreamore AI&#xff1a;你的智能梦境伴侣 Dreamore AI 是一款超有趣的AI 梦境解析与可视化工具&#xff0c;它巧妙地把梦境解读和图像生成这两大功能融为一体。你只需要…

集合-单列集合(Collection)

List系列集合&#xff1a;添加的元素是有序、可重复、有索引的。Set系列集合&#xff1a;添加的元素是无序、不重复、无索引的。代码&#xff1a;public class A01_CollectionDemo1 {public static void main(String[] args) {/** 注意点&#xff1a;Collection是一个接口&…

写一个 RTX 5080 上的 cuda gemm fp16

1. cpu 计算 fp16 四则运算由于会用到cpu 的gemm 与 gpu gemm 的对比验证&#xff0c;所以&#xff0c;这里稍微解释一下 cpu 计算fp16 gemm 的过程。这里为了简化理解&#xff0c;cpu 中不使用 avx 相关的 fp16 运算器&#xff0c;而是直接使用 cpu 原先的 ALU 功能。这里使用…

web渗透PHP反序列化漏洞

web渗透PHP反序列化漏洞1&#xff09;PHP反序列化漏洞反序列我们可以控制对象中的值进行攻击O:1:"C":1:{s:3:"cmd";s:8:"ipconfig";}http://127.0.0.1/1.php?xO:1:%22C%22:1:{s:3:%22cmd%22;s:3:%22ver%22;}常见的反序列化魔术方法&#xff1a;…

FPGA学习笔记——SPI读写FLASH

目录 一、任务 二、需求分析 三、Visio图 四、具体分析 五、IP核配置 六、代码 七、实验现象 一、任务 实验任务&#xff1a; 1.按下按键key1&#xff0c;开启读ID操作&#xff0c;将读出来的ID&#xff0c;通过串口发送至PC端显示&#xff0c;显示格式为“读ID:XX-XX-XX…

一句话PHP木马——Web渗透测试中的隐形杀手

文章目录前言什么是"一句话木马"&#xff1f;常见变种与隐藏技巧1. 函数变种2. 加密混淆3. 变量拆分4. 特殊字符编码上传技巧与绕过防御常见上传绕过技巧检测与防御措施1. 服务器配置2. 上传验证3. 代码审计4. Web应用防火墙(WAF)实战案例分析深度思考&#xff1a;安…

房屋租赁系统|基于SpringBoot和Vue的房屋租赁系统(源码+数据库+文档)

项目介绍 : SpringbootMavenMybatis PlusVue Element UIMysql 开发的前后端分离的房屋租赁系统&#xff0c;项目分为管理端和用户端以及房主端 项目演示: 基于SpringBoot和Vue的房屋租赁系统 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上…

C++动态规划——经典题目(下)

上一篇文章没有写全&#xff0c;这篇再补两道题酒鬼#include<bits/stdc.h> using namespace std; int dp[110][10]{0}; int a[1010]{0}; int n,m; int main() {cin>>n;dp[0][0]0;dp[1][0]0;dp[1][1]a[1];for(int i1;i<n;i){cin>>a[i];}for(int i2;i<n;…

介绍Ansible和实施Ansible PlayBook

第一章 介绍Ansible1. ansible的特点是什么&#xff1f;a. ansible使用yaml语法&#xff0c;语言格式简洁明了。b. ansible不需要代理&#xff0c;仅仅通过SSH远程连接就可以控制受管主机&#xff0c;是一种非常便捷、安全的方法。c. Ansible的功能强大&#xff0c;可以利用ans…

ComfyUI驱动的流程化大体量程序开发:构建上下文隔离的稳定系统

ComfyUI驱动的流程化大体量程序开发&#xff1a;构建上下文隔离的稳定系统 在现代软件工程中&#xff0c;随着程序体量的不断增长&#xff0c;上下文污染&#xff08;Context Pollution&#xff09;和状态依赖混乱已成为导致系统不稳定、调试困难、维护成本高昂的核心问题。尤…

基于SpringBoot的协同过滤余弦函数的美食推荐系统(爬虫Python)的设计与实现

基于SpringBootvue的协同过滤余弦函数的个性化美食(商城)推荐系统(爬虫Python)的设计与实现 1、项目的设计初衷&#xff1a; 随着互联网技术的快速发展和人们生活水平的不断提高&#xff0c;传统的美食消费模式已经无法满足现代消费者日益个性化和多样化的需求。在信息爆炸的时…

机器视觉学习-day19-图像亮度变换

1 亮度和对比度亮度&#xff1a;图像像素的整体强度&#xff0c;亮度提高就是所有的像素加一个固定值。对比度&#xff1a;当对比度提高时&#xff0c;图像的暗部与亮部的差值会变大。OpenCV调整图像亮度和对比度的公式使用一个&#xff1a;代码实践步骤&#xff1a;图片输入→…

redis详解 (最开始写博客是写redis 纪念日在写一篇redis)

Redis技术 1. Redis简介 定义与核心特性&#xff08;内存数据库、键值存储&#xff09; Redis&#xff08;Remote Dictionary Server&#xff0c;远程字典服务&#xff09;是一个开源的、基于内存的高性能键值存储数据库&#xff0c;由 Salvatore Sanfilippo 编写&#xff0c;用…

【MD文本编辑器Typora】实用工具推荐之——轻量级 Markdown 编辑器Typora下载安装使用教程 办公学习神器

本文将向大家介绍一款轻量级 Markdown 编辑器——Typora&#xff0c;并详细说明其下载、安装与基本使用方法。 引言&#xff1a; MD 格式文档指的是使用 Markdown 语言编写的文本文件&#xff0c;其文件扩展名为 .md。 Markdown 是一种由约翰格鲁伯&#xff08;John Gruber&am…

Vue2+Element 初学

大致实现以上效果 一、左侧自动加载菜单NavMenu.vue 菜单组件&#xff0c;简单调整了一下菜单直接的距离&#xff0c;代码如下&#xff1a;<template><div><template v-for"item in menus"><!-- 3、有子菜单&#xff0c;设置不同的 key 和 inde…

Shell编程知识整理

文章目录一、Shell介绍1.1 简介1.2 Shell解释器二、快速入门2.1 编写Shell脚本2.2 执行Shell脚本2.3 小结三、Shell程序&#xff1a;变量3.1 语法格式3.2 变量使用3.3 变量类型四、字符串4.1 单引号4.2 双引号4.3 获取字符串长度4.4 提取子字符串4.5 查找子字符串五、Shell程序…