基于STM32的智能温室大棚

本文将具体说明植物试验基地温室大棚监控系统设计开发详情和流程,该系统可实现以下这些功能:

        本系统设计主要有两大方向,一为自动操控界面,系统自动监测环境并根据监测到的参数执行相应的操作;二为人为手动控制,人为的监测环境并操控功能的打开。

        本系统设计带有OLED页面操作,操作方式为按键操作。系统搭建有记忆模块AT24C02,存储参数阈值(如温湿度、土壤湿度等),人为改变阈值,可实现监控不同植物的生长环境,并因为是将环境参数阈值存储在记忆模块,所以可实现掉电,参数改变仍保留的功能。

下面将简单介绍系统实现的某个功能,就不一一列举了。

一、系统自动控制

  1. OLED显示屏上显示系统监测到的土壤含水量、日光强度、CO₂浓度、空气温度、空气湿度等重要信息;
  2. 该系统设置有温湿度阀值、二氧化碳浓度阀值、土壤湿度阈值,阀值超标蜂鸣器报警提示;
  3. 温湿度度阀值和二氧化碳阀值超标开启风扇降温通风,土壤湿度过低开启水泵浇水,光照强度低于阀值开启补光灯;
  4. 系统通过WIFI连接网络,手机远程查看系统数据,并且可通过机智云APP控制开关风扇、灯光、水泵。

                                                               系统自动监测页面                                                           

 二、人为监控页面

人为监控操作页面

第一个图标是监控空气温湿度、第二个为监控土壤湿度、第三个为光照强度、第四个为二氧化碳浓度、第五个为阈值设计、第六个为WiFi联网

 

人为查看光照强度

 使用按键选择查看光照强度,并且通过按键2进入补光模式

 

                 补光模式(二档)

联网模块---通过esp8266与机智云服务段建立连接

机智云操控页面

功能的部分代码

 

 获取光照强度、土壤湿度:

​
#include "adc.h"

/***********************
函数名:ADC1_Init
函数功能:模数转换初始化
形参:void
返回值:void
函数说明:
光敏电阻  ---PA5--ADC12_IN5
土壤湿度传感器--PA4---ADC12_IN4
************************/
void ADC1_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	ADC_InitTypeDef ADC_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能GPIOA时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);//使能ADC1
	
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	ADC_DeInit(ADC1);
	
	ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//连续转化模式设置
	ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据左对齐
	ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//软件触发
	ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//独立模式
	ADC_InitStructure.ADC_NbrOfChannel=1;//通道数
	ADC_InitStructure.ADC_ScanConvMode=DISABLE;//扫描模式禁止设置
	ADC_Init(ADC1,&ADC_InitStructure);
	
	//ADC_TempSensorVrefintCmd(ENABLE); //开启内部温度传感器
	
	ADC_Cmd(ADC1,ENABLE);//使能指定ADC外设
	
	ADC_ResetCalibration(ADC1);//使能复位校准
	while(ADC_GetResetCalibrationStatus(ADC1));//等待复位校准结束
	ADC_StartCalibration(ADC1);//开启AD校准
	ADC_GetCalibrationStatus(ADC1);//等待AD校准结束
}
/***********************
函数名:get_Adc_Value
函数功能:换取采样值
形参:u8 ch
返回值:u16
函数说明:
ch 转换通道   ADC_SampleTime_239Cycles5采样时间值    采样时间选择最长
1  采样通道数量
光敏电阻  ---PA5--ADC12_IN5
土壤湿度传感器--PA4---ADC12_IN4
************************/
u16 get_Adc_Value(u8 ch)//通道一采样值
{	
   ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);//ADC匹配通道
	 ADC_SoftwareStartConvCmd(ADC1,ENABLE);//ADC软件转换启动
	 while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待采样结束
	 return ADC_GetConversionValue(ADC1);//放回采样值
}


/***********************
函数名:Get_light_Value
函数功能:光照强度
形参:void
返回值:void
函数说明:
光敏电阻  ---PA5--ADC12_IN5---0x05
土壤湿度传感器--PA4---ADC12_IN4--0x04
************************/
u8 light_value,soil_value;
u8 buf3[20];
u8 buf4[20];
u8 light_flag=0;
u8 soil_flag=0;
void Get_light_Value(void)
{
	light_value=0;
	u16 Rec=0;
	Rec=get_Adc_Value(0x05);//获取采样数值
	light_value = 100 - ((100 * Rec)/4096);//光照强度百分比

	sprintf((char *)buf3,"光照强度:%d%%LX",light_value);
	if(light_flag ==0)
	{
		Oled_ShowAll(4,0,buf3);//显示中英字符串
	}
	if(light_flag==1)
	{
		Oled_ShowAll(6,0,buf3);//显示中英字符串
	}
}
/***********************
函数名:Get_soil_Value
函数功能:土壤湿度
形参:void
返回值:void
函数说明:
光敏电阻  ---PA5--ADC12_IN5---0x05
土壤湿度传感器--PA4---ADC12_IN4--0x04
************************/
void Get_soil_Value(void)
{
	soil_value=0;
	u16 Rec=0;
	Rec=get_Adc_Value(0x04);//获取土壤采样数值
	soil_value = 100 - ((100 * Rec)/4096);//土壤强度百分比

	if(soil_flag==0)
	{
	sprintf((char *)buf4,"土壤湿度:%d%%",soil_value);
	Oled_ShowAll(4,0,buf4);//显示中英字符串
	}
	if(soil_flag == 1)
	{
		sprintf((char *)buf4,"soil:%d%%",soil_value);
		Oled_ShowAll(4,64,buf4);//显示中英字符串
	}
}


​

如想获取整个代码的同学,可添加本人QQ1972218606。

本人可接单片机系统设计,学生价,有兴趣的可联系本人。

如本文章所设计的系统,淘宝上设计做出实物至少要8百左右,本人则需要一半的价格便可,如果只需要代码则更便宜,可自行上淘宝查看,欢迎有兴趣的朋友联系。

  • 8
    点赞
  • 107
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于STM32单片机温室大棚环境检测系统设计,主要通过传感器采集温度、湿度和光照强度等环境参数,并将数据通过串口或无线传输方式传送给上位机进行分析和处理。 系统设计的硬件部分包括STM32单片机作为主控芯片、温湿度传感器、光敏传感器等作为环境参数采集模块,以及LCD显示屏和蜂鸣器作为人机交互模块。其中,STM32单片机负责控制整个系统的运行和数据处理,通过串口与上位机通信;温湿度传感器负责采集大棚内的温度和湿度数据;光敏传感器则负责采集大棚内的光照强度数据;LCD显示屏用于实时显示环境参数;蜂鸣器则用于报警。 系统设计的软件部分主要包括STM32单片机的程序设计和上位机软件的开发。在STM32单片机的程序设计方面,需要编写采集传感器数据的驱动程序,并进行数据处理和存储;同时,还需要编写与上位机通信的串口通信协议。上位机软件的开发则包括数据接收和显示的界面设计以及数据分析和处理的算法实现。 该系统设计可以实时监测温室大棚的环境参数,例如温度、湿度和光照强度等,帮助种植者了解大棚内的环境状况,从而采取相应的措施调整和优化环境,提高温室种植的产量和质量。另外,当环境参数超过预设的阈值时,系统也可以通过蜂鸣器进行报警,提醒种植者注意并及时处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点灯之王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值