首页 > 分享 > 132

132

STM32_C51 已于 2023-11-24 22:37:51 修改

于 2023-11-19 22:00:46 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

一:功能介绍

1、采用stm32单片机+LCD1602+DHT11温湿度传感器+继电器+按键+电机+蜂鸣器,制作一个基于stm32单片机智能自动浇花灌溉系统;

2、通过DHT11传感器采集当前的温湿度,显示到LCD1602上面;

3、通过按键设置湿度阈值,每按一下蜂鸣器会滴提醒一下,显示到LCD1602上面;

4、当检测到的湿度低于当前设置湿度阈值,继电器自动打开,浇水电机开启工作自动浇水;

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

三:设计软件介绍

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

四:程序打开方法

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

c2406f2a1ee77908ee04491cededbe25.png

dca1c418a5f07ab18fb6db443e266c26.png

程序部分展示,有中文注释,新手容易看懂

uint8_t lcd_dat1[20];

uint8_t lcd_dat2[20];

uint16_t temp_dat;

uint16_t hum_dat;

uint16_t set_hum_dat=50;

uint8_t setnum;

void KEY_IO_Init(void);

void EXTIx_Init(void);

void Relay_IO_Init(void);

void EXTI0_IRQHandler(void);

void EXTI1_IRQHandler(void);

void EXTI2_IRQHandler(void);

int main(void){

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

KEY_IO_Init();

Relay_IO_Init();

EXTIx_Init();

LCD_init();

LCD_clr();

DHT11_Init();

while(1)

{

if(DHT11_ReadData())

{

temp_dat=DHT11_GetTem();

temp_dat=temp_dat/256;

delay_ms(10);

hum_dat=DHT11_GetHum();

hum_dat=hum_dat/256;

}

sprintf(lcd_dat1,"T:%d C H:%d n",temp_dat,hum_dat);

LCD_prints(0,0,lcd_dat1);

if(setnum==0)

{

sprintf(lcd_dat2," SET:%d n",set_hum_dat);

LCD_prints(0,1,lcd_dat2);

}

if(setnum == 1)

{

sprintf(lcd_dat2," SET:%d *n",set_hum_dat);

LCD_prints(0,1,lcd_dat2);

}

if(hum_dat<set_hum_dat)

Relay1=1;

else

Relay1=0;

}

}

void KEY_IO_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

GPIO_Init(GPIOB, &GPIO_InitStructure);

}

void EXTIx_Init(void)

{

NVIC_InitTypeDef NVIC_InitStructure;

EXTI_InitTypeDef EXTI_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource0);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource1);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource2);

EXTI_InitStructure.EXTI_Line = EXTI_Line0|EXTI_Line1|EXTI_Line2;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_Init(&EXTI_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}

void EXTI0_IRQHandler(void)

{

setnum++;

buzzer=1;delay_ms(50);buzzer=0;delay_ms(50);

if(setnum > 1)

{

setnum=0;

}

EXTI_ClearITPendingBit(EXTI_Line4);

}

void EXTI1_IRQHandler(void)

{

buzzer=1;delay_ms(50);buzzer=0;delay_ms(50);

if(setnum == 1)

{

if(set_hum_dat<100)

set_hum_dat++;

}

EXTI_ClearITPendingBit(EXTI_Line4);

}

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

968bbd9401a314cd921feaabc8d1f2b0.png

9c857930a41fe8b90be015e5ea961f54.png

2b183b43ef661f62a9a3bdf05b6b822e.png

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

41c52acc4883cef36d430286c56c91e1.png

资料下载链接(可点击)

相关知识

花艺比赛策划方案132
做法超级简单的圆形花球,轻松就能学会,两个组合起来有点像葫芦
中式婚礼场景花瓣飘舞花纹渲染灯光射线变幻婚礼高清led大屏背景视频素材
玻璃瓶插花,室内植物,花瓶插花,白百合,花草
公园景观兰花,紫色兰花丛,装饰兰花丛,开放的兰花
开场温馨浪漫婚礼花园展示婚礼照片
精美鲜艳花朵旋涡绽放盛开旋转展示鲜花植物高清视频拍摄高清实拍视频素材
光线映射植物花朵蜜蜂采集花瓣变焦特写唯美高清视频拍摄高清实拍视频素材
浪漫粉色玫瑰花背景中结婚情侣在花瓣中幸福相爱视频素材
绿色环保嫩芽绽放成花朵出现logo创意片头模板

网址: 132 https://m.huajiangbk.com/newsview477073.html

所属分类:花卉
上一篇: 单片机设计基于STM32的盆栽培
下一篇: 基于STM32的智能雨水收集与灌