网站的优势,wordpress教程阿里云,河南省建筑业协会,中企动力是国企性质吗文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
系统运行后#xff0c;LCD1604显示传感器检测的温湿度、光线强度和风速#xff0c;工作模式#xff0c;以及相应阈值#xff0c;系统工作状态等#xff1b;系统默认为自动模式#xff0c; 可通过K4… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
系统运行后LCD1604显示传感器检测的温湿度、光线强度和风速工作模式以及相应阈值系统工作状态等系统默认为自动模式 可通过K4键切换为手动模式此时可通过K1键来控制晾衣架的开和关 若系统处于自动模式时可通过K3键进入阈值设置模式K1和K2键调节各阈值参数K4确定保存。 如果检测光线强度低于阈值光线暗晚上或阴雨天此时晾衣架关闭 如果检测光线强度高于阈值光线强白天此时如果下雨或大风关闭晾衣架否则如果温度高于阈值且湿度低于阈值代表晴天打开晾衣架 如果湿度高于阈值则关闭晾衣架 手动模式下可通过串口远程控制发送十六进制0X11指令实现开关控制 二、软件设计
/*
作者嗨小易QQ3443792007*///系统数据设置
void sys_data_set(void)
{u8 key0;keyKEY_Scan(0);//确定/自动手动if(keyKEY4_PRESS){if(sys_ctrl.mode!0)//确定{sys_ctrl.mode0;}else//自动/手动 {sys_ctrl.auto_flag!sys_ctrl.auto_flag;}}//自动模式if(sys_ctrl.auto_flag0){//阈值设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode4)sys_ctrl.mode1;}//加else if(keyKEY1_PRESS){switch(sys_ctrl.mode){case 1://温度sys_ctrl.temph;if(sys_ctrl.temph99)sys_ctrl.temph0;break;case 2://湿度sys_ctrl.humil;if(sys_ctrl.humil99)sys_ctrl.humil0;break;case 3://光线sys_ctrl.lightl;if(sys_ctrl.lightl99)sys_ctrl.lightl0;break;case 4://风速sys_ctrl.windh;if(sys_ctrl.windh10)sys_ctrl.windh1;break;}}//减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://温度sys_ctrl.temph--;if(sys_ctrl.temph0)sys_ctrl.temph99;break;case 2://湿度sys_ctrl.humil--;if(sys_ctrl.humil0)sys_ctrl.humil99;break;case 3://光线sys_ctrl.lightl--;if(sys_ctrl.lightl0)sys_ctrl.lightl99;break;case 4://风速sys_ctrl.windh--;if(sys_ctrl.windh0)sys_ctrl.windh10;break;}}}//手动模式else{//开/关if(keyKEY1_PRESS || USART1_RX_BUF[0]OPEN_CMD){USART1_RX_BUF[0]0;sys_ctrl.run!sys_ctrl.run;if(sys_ctrl.run1)//开{_dc_motor_zturn();delay_ms(500);_dc_motor_stop();}else//关{_dc_motor_fturn();delay_ms(500);_dc_motor_stop();}}}
}//系统功能控制
void sys_fun_ctrl(void)
{//自动模式if(sys_ctrl.auto_flag0){//正常模式下if(sys_ctrl.mode0){//如果白天if(sys_ctrl.lightsys_ctrl.lightl){//如果下雨或大风关闭晾衣架if(sys_ctrl.rain1 || sys_ctrl.windsys_ctrl.windh){//如果晾衣架已打开关闭晾衣架if(sys_ctrl.run1){sys_ctrl.run0;_dc_motor_fturn();beep_alarm(40,2000);delay_ms(500);_dc_motor_stop();}}//没有下雨或大风else {//如果温度高于阈值if(sys_ctrl.tempsys_ctrl.temph){//如果湿度低于阈值if(sys_ctrl.humisys_ctrl.humil){//如果晾衣架已关闭打开晾衣架if(sys_ctrl.run0){sys_ctrl.run1;_dc_motor_zturn();delay_ms(500);_dc_motor_stop();}}//如果湿度高于阈值else {//如果晾衣架已打开关闭晾衣架if(sys_ctrl.run1){sys_ctrl.run0;_dc_motor_fturn();delay_ms(500);_dc_motor_stop();}}}}}//如果晚上else{//如果晾衣架打开则关闭if(sys_ctrl.run1){sys_ctrl.run0;_dc_motor_fturn();delay_ms(500);_dc_motor_stop();}}}}
}//应用控制系统
void appdemo_show(void)
{u8 i5;sys_parm_init();//系统参数初始化KEY_Init();BEEP_Init();DHT11_Init();ctrl_pin_init();pcf8591_init();dc_motor_init();USART1_Init(9600);while(i--){//读取DHT11温湿度值DHT11_Read_Data(sys_ctrl.temp,sys_ctrl.humi);delay_ms(100);}lcd1604_init();//LCD1604初始化sys_open_show();//系统初始界面显示while(1){sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制 }
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发PCB设计视频分享技术交流。