84-基于stm32单片机蔬菜大棚温湿度光照强度监测控制系统Proteus仿真+程序源码

一:功能介绍:

1、采用stm32单片机+OLED显示屏+光照强度检测+DHT11温湿度+电机+按键+LED灯,制作一个温湿度采集、光照强度检测,OLED显示相关数据,

2、通过按键设置温度上限、湿度下限、光照强度下限值,

3、当采集温度大于设置温度,开启散热电机,当采集湿度小于设置湿度,开启加湿电机,当检测光照强度低于设置值,开启LED灯补光,

4、OLED显示屏显示采集温湿度、光照强度和设置的温湿度、光照强度阈值

二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)

84-基于stm32单片机蔬菜大棚温湿度光照强度监测控制系统Proteus仿真+程序源码+讲解视频

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

93dd7ab6599cae8bc064c65368ef13c1.png

d209febc734f701e4a17a783be50b5b6.png

程序部分展示,有中文注释,新手容易看懂
  b=ADC_GetConversionValue(ADC1);//读取光照强度
    tmp=(float)b*(3.4/4096)*33;//转换ADC数据计算光照强度
    DHT11_Read_Data(&temp, &hum);//温湿度读取
    sprintf((char *)buf, "temp:%d C  ", temp);//整数转字符串 温度
    LCD_P6x8Str(2, 1, buf);//字符显示
    sprintf((char *)buf, "hum:%d   " , hum);//整数转字符串   湿度
    LCD_P6x8Str(2, 3, buf);//字符显示
    sprintf((char *)buf, "GZ :%d Lux  ", tmp);//整数转字符串  光照强度
    LCD_P6x8Str(2, 5, buf);//字符显示
    if(KEY1==1) //设置温度上限值
    {  
      while(KEY1!=0);
        buf1++;
      if(buf1>100) buf1=1,LCD_Init();
    }
    if(KEY2==1) //设置湿度下限值
    {    
      while(KEY2!=0);
        buf2++;  
      if(buf2>100) buf2=1,LCD_Init();      
    }
    if(KEY3==1) //设置光照强度下限值
    {    
      while(KEY3!=0);
        buf3++;    
      if(buf3>100) buf3=1,LCD_Init();      
    }


    sprintf((char *)buf, "SET:%d", buf1);//整数转字符串 温度
    LCD_P6x8Str(80, 1, buf);//字符显示
    sprintf((char *)buf, "SET:%d" , buf2);//整数转字符串   湿度
    LCD_P6x8Str(80, 3, buf);//字符显示
    sprintf((char *)buf, "SET:%d", buf3);//整数转字符串  光照强度
    LCD_P6x8Str(80, 5, buf);//字符显示  
      
    if(temp>buf1)  MORTOR1=0;//温度过高  开启散热
    else MORTOR1=1;
    
    if(hum<buf2)  MORTOR2=0;//湿度过低  开启加湿
    else MORTOR2=1;
    
    if(tmp<buf3)  MORTOR3=0;//低于光照强度值 开灯补光
    else MORTOR3=1;

:仿真文件(采用Proteus打开)

22337bf246a8a8c19c6ce3d80c12a2ce.png

8ee7e1d041c39207228fa49597e26829.png

04d562bd7380bacac55ef297ec477758.png

六:资料清单展示(文件中包含的相关资料)

e4891a96608ae6e3e774ad06a3392b6a.png

百度云盘资料下载链接

### 系统设计概述 基于STM32微控制器的蔬菜大棚温湿度监测系统是一种集成了传感器技术、嵌入式系统和自动控制原理的智能化解决方案。该系统的核心功能是通过高精度的温湿度传感器采集环境数据,并利用STM32的强大处理能力对数据进行分析与决策,最终实现对执行机构(如风扇、加热器、水泵等)的精准控制[^1]。 ### 硬件设计 #### 微控制器 - **STM32系列单片机**:作为主控单元,负责协调整个系统的运行。STM32具有高性能、低功耗的特点,同时支持多种通信接口,适合用于复杂的数据处理和实时控制任务。 #### 传感器模块 - **DHT11/DHT22温湿度传感器**:用于实时监测大棚内的温度和湿度变化。DHT11适用于一般精度要求的应用场景,而DHT22则提供更高的测量精度。 - **其他可选传感器**:根据实际需求,可以增加光照强度、土壤湿度等传感器以扩展系统功能。 #### 显示模块 - **LCD1602液晶显示屏**:用于直观显示当前的温湿度数值及设定的阈值信息。也可以选择更高级的TFT彩色屏幕来提升用户体验。 #### 控制模块 - **继电器模块**:用于控制外部设备的工作状态,例如风扇、加热器和水泵等。 - **报警模块**:采用蜂鸣器或LED灯作为声光报警装置,在异常情况下提醒管理人员注意。 #### 电源管理 - **稳压电路**:确保为各部件提供稳定可靠的电力供应。 - **备用电池**:在断电情况下保持关键数据不丢失,并维持基本监控功能。 ### 软件设计 #### 数据采集 - 编写驱动程序读取DHT11/DHT22传感器的数据,并将结果存储到内存中以便后续处理。 #### 数据处理 - 对采集到的数据进行滤波和平滑处理,提高数据准确性。 - 根据预设的阈值判断当前环境是否处于正常范围内。 #### 用户交互 - 实现按键输入逻辑,允许用户调整上下限阈值。 - 更新LCD屏幕上的显示内容,包括当前值、设置值以及报警提示等。 #### 自动控制 -检测温度超过上限时启动风扇降温;若低于下限时则激活加热元件。 - 湿度过高时关闭水泵并触发警报;反之,则开启水泵进行灌溉。 - 所有操作均需遵循安全规则,防止误动作导致设备损坏或作物受损。 ```c // 示例代码片段 - 初始化GPIO口 void GPIO_Init(void) { // 启用相关外设时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE); // 配置LED指示灯引脚为推挽输出模式 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置按键输入引脚 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOB, &GPIO_InitStructure); } ``` #### 系统集成与测试 - 完成所有模块的功能验证后,进行整体联调测试,确保各部分协同工作无误。 - 利用Proteus软件搭建仿真平台,模拟真实环境下可能出现的各种情况,进一步优化算法参数和响应策略。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值