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

基于STM32单片机的智能温室控制声光报警系统设计

1 系统功能介绍

本设计是一套 基于STM32单片机的智能温室控制声光报警系统,实现了温湿度监测、声光报警、风扇控制以及移动端APP通信功能。系统结合了传感器检测、显示、声光报警、无线通信和手动控制功能,为温室环境管理提供了自动化和智能化解决方案。

主要功能如下:

  1. 温湿度监测功能:通过温湿度传感器采集温室内部环境参数,实时显示在 LCD1602 上,并通过蓝牙模块发送至 APP。
  2. 阈值报警功能:用户可通过按键设置温湿度上下限,当环境温湿度超出设定阈值时,系统通过蜂鸣器或 LED 提示,同时向 APP 发送报警信息,如“Shidu High”、“Shidu Low”或“Shidu Normal”。
  3. 风扇控制功能:通过 APP 发送指令“O”可开启风扇,“C”可关闭风扇,实现远程调节温室温度。
  4. 声光报警功能:当温度超出阈值时蜂鸣器报警,湿度异常时 LED 指示,同时系统周期性闪烁指示灯显示系统运行状态。
  5. 人机交互功能:通过按键修改温湿度报警阈值,实现本地参数设置与管理。

该系统实现了环境监测与控制、报警提示和远程管理功能的高度集成,适合小型智能温室、农业科研以及家庭种植场景使用。


2 系统电路设计

本系统电路由多个模块组成,包括核心控制模块、传感器模块、显示模块、报警模块、风扇控制模块、蓝牙通信模块及按键模块。以下分别进行详细说明。

2.1 STM32单片机最小系统

  • 核心芯片:STM32F103C8T6

  • 功能

    • 接收来自温湿度传感器的环境参数;
    • 处理阈值报警逻辑;
    • 控制蜂鸣器、LED、风扇的工作状态;
    • 通过蓝牙模块发送实时数据和报警信息至 APP。
  • 设计要点

    • 外接晶振与复位电路确保系统稳定启动;
    • 提供多个 GPIO 接口用于连接传感器、显示器、蜂鸣器和按键;
    • 采用稳压电源保证单片机及外设正常工作。

2.2 温湿度传感器模块

  • 传感器型号:常用 DHT11 或 DHT22

  • 功能:采集温室内部温度和湿度数据。

  • 接口设计

    • 单线接口,与单片机 GPIO 通信;
    • 外接上拉电阻,提高数据通信稳定性;
    • 通过定时采集,保证数据实时更新。

2.3 LCD1602液晶显示模块

  • 功能:实时显示温湿度、阈值及系统状态信息。

  • 接口设计

    • 采用 8 位并口与单片机连接;
    • 外接对比度调节电位器,保证显示清晰;
    • 可通过软件实现显示刷新和界面切换。

2.4 蜂鸣器与LED报警模块

  • 功能

    • 蜂鸣器用于温度超限报警;
    • LED 用于湿度超限或低限报警提示。
  • 设计要点

    • 蜂鸣器采用有源型,单片机 I/O 口直接驱动;
    • LED 接限流电阻防止过流烧毁。
  • 系统运行指示灯:周期闪烁显示系统正常运行状态。

2.5 风扇控制模块

  • 功能:调节温室内部温度,配合阈值报警实现环境调控。

  • 控制方式

    • 通过单片机 GPIO 控制继电器或 MOSFET 驱动风扇;
    • 支持手动通过 APP 控制开关;
    • 系统可根据温度阈值自动启停风扇。

2.6 蓝牙通信模块

  • 模块型号:HC-05 或 HC-06

  • 功能:实现单片机与 APP 的无线通信,传输温湿度数据及报警信息。

  • 接口设计

    • 串口 UART 通信;
    • 电源电压稳定 3.3V 或 5V;
    • 支持接收 APP 控制指令“ O ”开启风扇,“ C ”关闭风扇。

2.7 按键模块

  • 功能:本地修改温湿度报警阈值及其他系统设置。

  • 设计方式

    • 多按键分别实现增加、减少、确认等操作;
    • 使用上拉电阻保证按键稳定;
    • 软件进行防抖处理,避免误操作。

3 程序设计

系统程序采用模块化结构,包括初始化模块、数据采集模块、显示模块、按键处理模块、阈值判断与报警模块、蓝牙通信模块及风扇控制模块。

3.1 系统初始化

#include "stm32f10x.h"
#include "lcd1602.h"
#include "dht11.h"
#include "bluetooth.h"
#include "buzzer_led.h"
#include "fan_control.h"
#include "key.h"uint8_t temp, hum;
uint8_t temp_upper=30, temp_lower=20;
uint8_t hum_upper=70, hum_lower=40;void System_Init(void){LCD1602_Init();DHT11_Init();Bluetooth_Init();BuzzerLED_Init();Fan_Init();Key_Init();LCD1602_Clear();LCD1602_ShowString(0,0,"Smart Greenhouse Init");
}

3.2 温湿度采集模块

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

3.3 LCD显示模块

void Display_Data(void){LCD1602_Clear();LCD1602_ShowString(0,0,"Temp:");LCD1602_ShowNum(5,0,temp,2);LCD1602_ShowString(8,0,"C");LCD1602_ShowString(0,1,"Hum:");LCD1602_ShowNum(4,1,hum,2);LCD1602_ShowString(7,1,"%");
}

3.4 按键处理模块

void Key_Process(void){if(Key_Set==0){// 进入阈值设置模式}if(Key_Up==0){// 增加当前参数}if(Key_Down==0){// 减少当前参数}
}

3.5 阈值判断与报警模块

void Alarm_Control(void){if(temp > temp_upper){Buzzer_ON();Bluetooth_Send("Temp High");} else if(temp < temp_lower){LED_ON();Bluetooth_Send("Temp Low");}if(hum > hum_upper){Bluetooth_Send("Shidu High");} else if(hum < hum_lower){Bluetooth_Send("Shidu Low");} else {Bluetooth_Send("Shidu Normal");}
}

3.6 蓝牙通信模块

void Bluetooth_Process(void){char cmd = Bluetooth_Receive();if(cmd == 'O'){Fan_Start();} else if(cmd == 'C'){Fan_Stop();}
}

3.7 风扇控制模块

void Fan_Control(void){if(temp > temp_upper){Fan_Start();} else if(temp < temp_lower){Fan_Stop();}
}

3.8 主程序循环

int main(void){System_Init();while(1){Read_TempHum();Display_Data();Key_Process();Alarm_Control();Bluetooth_Process();Fan_Control();}
}

系统通过模块化设计,实现了温湿度实时监测、阈值报警、风扇控制以及与 APP 的无线通信功能。各模块协同工作,确保温室环境稳定、安全和高效运行。

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

相关文章:

  • leetcode 461 汉明距离
  • 基于MSRDCN、FEAM与AMSFM的轴承故障诊断MATLAB实现
  • 【工具】开源大屏设计器 自用整理
  • golang接口详细解释
  • websocket的应用
  • 【Spring Cloud Alibaba】前置知识
  • 微信小程序调用蓝牙打印机教程(TSPL命令)
  • Android 14 PMS源码分析
  • Linux-搭建DNS服务器
  • 计算机三级嵌入式填空题——真题库(24)原题附答案速记
  • CMake xcode编译器属性设置技巧
  • JavaScript 数组核心操作实战:最值获取与排序实现(从基础到优化)
  • 线程安全及死锁问题
  • Linux之Docker虚拟化技术(二)
  • Python结构化模式匹配:解析器的革命性升级
  • 大模型 “轻量化” 之战:从千亿参数到端侧部署,AI 如何走进消费电子?
  • 【ACP】2025-最新-疑难题解析-11
  • 机器视觉opencv教程(二):二值化、自适应二值化
  • Partner 类开发:会议参与者可视化控件
  • 经典扫雷游戏实现:从零构建HTML5扫雷游戏
  • 科技大会用了煽情BGM
  • 【技术分享】系统崩溃后产生的CHK文件如何恢复?完整图文教程(附工具推荐)
  • 论文阅读:GOAT: GO to Any Thing
  • 智慧工地系统:基于Java微服务与信创国产化的建筑施工数字化管理平台
  • 开关电源设计“反馈回路”部分器件分析
  • Nginx的主要配置文件nginx.conf详细解读——及其不间断重启nginx服务等操作
  • 从Cloudflare到EdgeOne:我的个人站点加速之旅与性能对比实测
  • LeetCode Hot 100 Python (11~20)
  • 微服务入门指南(一):从单体架构到服务注册发现
  • 将自己的jar包发布到maven中央仓库(2025-08-29)