狗铺子做网页在那个网站,wordpress 随机显示,佛山百度网站快速排名,企业信用网官网文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真STM32单片机控制器#xff0c;使用按键、LCD1604液晶、DHT11温湿度模块、PCF8591 ADC、光线传感器、PM2.5传感器、土壤湿度传感器、继电器、水泵、电灯、28BYJ48步进电机等。 主要… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真STM32单片机控制器使用按键、LCD1604液晶、DHT11温湿度模块、PCF8591 ADC、光线传感器、PM2.5传感器、土壤湿度传感器、继电器、水泵、电灯、28BYJ48步进电机等。 主要功能 系统运行后LCD1604显示环境温湿度、光线、风速、PM2.5、土壤湿度 窗帘和窗户开关状态 若按下K4键可切换自动/手动模式手动模式下K1控制窗帘开关 K2控制窗户开关K5控制电灯开关K6控制水泵开关 在自动模式下若按下K3键进入阈值设置模式K3选择参数 可通过K1和K2调节阈值当设定好后按下K4键确定并退出设置界面 如果光线太亮或者晚上关闭窗帘 如果晚上检测有人打开电灯人离开关闭电灯 如果PM2.5检测超限关闭窗户否则打开窗户 如果土壤湿度高于上限关闭水泵 如果土壤湿度低于下限打开水泵 二、软件设计
/*
作者嗨小易QQ技术交流群570487280*///系统数据设置
void sys_data_set(void)
{u8 key0;keyKEY_Scan(0);//模式设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode5)sys_ctrl.mode1;sys_parm_set_show();//系统参数设置界面显示}//设置模式if(sys_ctrl.mode!0){//加if(keyKEY1_PRESS){switch(sys_ctrl.mode){case 1://光线下sys_ctrl.set_light[0];if(sys_ctrl.set_light[0]99)sys_ctrl.set_light[0]0;break;case 2://光线上sys_ctrl.set_light[1];if(sys_ctrl.set_light[1]99)sys_ctrl.set_light[1]0;break;case 3://PM2.5sys_ctrl.set_pm25;if(sys_ctrl.set_pm25255)sys_ctrl.set_pm250;break;case 4://土壤湿度低sys_ctrl.set_trhumi[0];if(sys_ctrl.set_trhumi[0]99)sys_ctrl.set_trhumi[0]0;break;case 5://土壤湿度高sys_ctrl.set_trhumi[1];if(sys_ctrl.set_trhumi[1]99)sys_ctrl.set_trhumi[1]0;break;}}//减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://光线下sys_ctrl.set_light[0]--;if(sys_ctrl.set_light[0]0)sys_ctrl.set_light[0]99;break;case 2://光线上sys_ctrl.set_light[1]--;if(sys_ctrl.set_light[1]0)sys_ctrl.set_light[1]99;break;case 3://PM2.5sys_ctrl.set_pm25--;if(sys_ctrl.set_pm250)sys_ctrl.set_pm25255;break;case 4://土壤湿度低sys_ctrl.set_trhumi[0]--;if(sys_ctrl.set_trhumi[0]0)sys_ctrl.set_trhumi[0]99;break;case 5://土壤湿度高sys_ctrl.set_trhumi[1]--;if(sys_ctrl.set_trhumi[1]0)sys_ctrl.set_trhumi[1]99;break;}}//确定else if(keyKEY4_PRESS){sys_ctrl.mode0;sys_open_show();//系统开机界面显示}}//正常模式else{//自动手动if(keyKEY4_PRESS){sys_ctrl.auto_flag!sys_ctrl.auto_flag;}//手动模式if(sys_ctrl.auto_flag1){//窗帘开关if(keyKEY1_PRESS){sys_ctrl.cl_flag!sys_ctrl.cl_flag;}//窗户开关else if(keyKEY2_PRESS){sys_ctrl.ch_flag!sys_ctrl.ch_flag;}//电灯开关else if(keyKEY5_PRESS){DD_PIN!DD_PIN;}//水泵开关else if(keyKEY6_PRESS){SB_PIN!SB_PIN;}}}
}//系统功能控制
void sys_fun_ctrl(void)
{static u8 cl_oneflag0;static u8 ch_oneflag0;//自动模式if(sys_ctrl.auto_flag0){//正常模式if(sys_ctrl.mode0){//如果光线太亮或者晚上关闭窗帘if(sys_ctrl.lightsys_ctrl.set_light[1]|| sys_ctrl.lightsys_ctrl.set_light[0]){sys_ctrl.cl_flag0;}else{sys_ctrl.cl_flag1;}//如果晚上检测有人打开电灯人离开关闭电灯//如果晚上if(sys_ctrl.lightsys_ctrl.set_light[0]){//如果检测有人打开电灯if(sys_ctrl.man1){DD_PIN0;}else DD_PIN1; }else{DD_PIN1;}//如果PM2.5检测超限关闭窗户否则打开窗户if(sys_ctrl.pm25sys_ctrl.set_pm25){sys_ctrl.ch_flag0;LED_PIN0;//指示灯打开}else{sys_ctrl.ch_flag1;LED_PIN1;//指示灯关闭}//如果土壤湿度高于上限关闭水泵if(sys_ctrl.trhumisys_ctrl.set_trhumi[1]){SB_PIN1;}//如果土壤湿度低于下限打开水泵else if(sys_ctrl.trhumisys_ctrl.set_trhumi[0]){SB_PIN0;}}}//窗帘打开if(sys_ctrl.cl_flag1){if(cl_oneflag0){step_motor_28BYJ48_send_pulse(4,cl_oneflag,STEPMOTOR_MAXSPEED,3,1);cl_oneflag1;}}//窗帘关闭else{if(cl_oneflag1){step_motor_28BYJ48_send_pulse(4,cl_oneflag,STEPMOTOR_MAXSPEED,3,1);cl_oneflag0;}}//窗户打开if(sys_ctrl.ch_flag1){if(ch_oneflag0){step_motor2_28BYJ48_send_pulse(4,ch_oneflag,STEPMOTOR_MAXSPEED,3,1);ch_oneflag1;}}//窗户关闭else{if(ch_oneflag1){step_motor2_28BYJ48_send_pulse(4,ch_oneflag,STEPMOTOR_MAXSPEED,3,1);ch_oneflag0;}}
}//应用控制系统
void appdemo_show(void)
{sys_parm_init();//系统参数初始化KEY_Init();DHT11_Init();ctrl_pin_init();pcf8591_init();step_motor_gpio_init();step_motor2_gpio_init();lcd1604_init();//LCD1604初始化sys_open_show();//系统初始界面显示while(1){sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制 }
} 三、实验现象 联系作者
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发PCB设计视频分享技术交流。