文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者

一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、按键模块、HC05蓝牙、DHT11温湿度、PCF8591 ADC模块、光线传感器、28BYJ48步进电机等。

主要功能:
系统运行后,LCD1602显示温湿度和光线强度值和系统模式状态。
系统模式以自动模式运行,当按下K4键切换为手动模式,在手动
模式下,按下K1和K2键打开和关闭窗帘,同时可使用串口助手模拟
蓝牙APP,发送命令0X10切换自动手动模式,发送命令0X11打开,
0X12关闭。在自动模式下,默认温度上限为30,下限为25,光线
上限为60,下限为30,当前温度在温度阈值范围内,光线低于下限
,窗帘打开,高于上限窗帘关闭。如果温度高于温度上限,则打开
窗帘,温度低于温度下限,则关闭窗帘。在自动模式下,可通过K3键进入阈值设置窗口,K3键用于切换温度和光线上下限调节位置,K1和K2进行加减调节。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)
*///系统初始界面显示
void sys_open_show(void)
{lcd1602_clear();lcd1602_show_string(0,0,"Tp:  C");lcd1602_show_string(10,0,"Hi:  %");lcd1602_show_string(0,1,"Light:   %");lcd1602_show_string(12,1,"Auto");
}//系统数据采集
void sys_data_get(void)
{while(1){//读取DHT11温湿度值DHT11_Read_Data(&sys_ctrl.temp,&sys_ctrl.humi);//光线强度采集sys_ctrl.light=pcf8591_read_adcvalue(0);sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,100);break;}
}//系统数据设定
void sys_data_set(void)
{u8 key=0;static u8 one=0;key=KEY_Scan(0);//自动手动模式选择if(key==KEY4_PRESS || USART1_RX_BUF[0]==AUTO_MAN_CMD){sys_ctrl.auto_flag=!sys_ctrl.auto_flag;USART1_RX_BUF[0]=0;}//手动模式下控制if(sys_ctrl.auto_flag==1){//打开if(key==KEY1_PRESS || USART1_RX_BUF[0]==OPEN_CMD){sys_ctrl.run=1;sys_ctrl.dir=0;USART1_RX_BUF[0]=0;}//关闭else if(key==KEY2_PRESS || USART1_RX_BUF[0]==CLOSE_CMD){sys_ctrl.run=2;sys_ctrl.dir=1;USART1_RX_BUF[0]=0;}}//自动模式下K3键设置阈值if(sys_ctrl.auto_flag==0){//阈值设置if(key==KEY3_PRESS){sys_ctrl.mode++;//只显示一次阈值设置界面if(one==0){lcd1602_clear();lcd1602_show_string(0,0," Temp:  -  C");lcd1602_show_string(0,1,"Light:  -  %");one=1;}if(sys_ctrl.mode>=5){sys_ctrl.mode=0;one=0;sys_open_show();//主界面显示}}//加else if(key==KEY1_PRESS){switch(sys_ctrl.mode){case 1://温度下限sys_ctrl.templ++;if(sys_ctrl.templ>99)sys_ctrl.templ=0;break;case 2://温度上限sys_ctrl.temph++;if(sys_ctrl.temph>99)sys_ctrl.temph=0;break;case 3://光线下限sys_ctrl.lightl++;if(sys_ctrl.lightl>99)sys_ctrl.lightl=0;break;case 4://光线上限sys_ctrl.lighth++;if(sys_ctrl.lighth>99)sys_ctrl.lighth=0;break;}}//减else if(key==KEY2_PRESS){switch(sys_ctrl.mode){case 1://温度下限sys_ctrl.templ--;if(sys_ctrl.templ<0)sys_ctrl.templ=99;break;case 2://温度上限sys_ctrl.temph--;if(sys_ctrl.temph<0)sys_ctrl.temph=99;break;case 3://光线下限sys_ctrl.lightl--;if(sys_ctrl.lightl<0)sys_ctrl.lightl=99;break;case 4://光线上限sys_ctrl.lighth--;if(sys_ctrl.lighth<0)sys_ctrl.lighth=99;break;}}}
}//系统功能控制
void sys_fun_ctrl(void)
{static u8 sta=0;//手动模式下窗帘控制if(sys_ctrl.auto_flag){if(sys_ctrl.run==1)//只执行1次,打开窗帘{if(sta==0){step_motor_28BYJ48_send_pulse(4,sys_ctrl.dir,50,3,1);sta=1;}}else if(sys_ctrl.run==2)//只执行1次,关闭窗帘{if(sta==1){step_motor_28BYJ48_send_pulse(4,sys_ctrl.dir,50,3,1);sta=0;sys_ctrl.run=0;}}}//自动模式下窗帘控制else{//如果温度高于上限值,打开窗帘if(sys_ctrl.temp>sys_ctrl.temph){sys_ctrl.dir=0;if(sta==0)//只打开1次{step_motor_28BYJ48_send_pulse(4,sys_ctrl.dir,50,3,1);sta=1;}}//如果温度低于下限,关闭窗帘else if(sys_ctrl.temp<sys_ctrl.templ){sys_ctrl.dir=1;if(sta==1)//只关闭1次{step_motor_28BYJ48_send_pulse(4,sys_ctrl.dir,50,3,1);sta=0;}}//如果在阈值范围内else {//光线高于上限,关闭窗帘if(sys_ctrl.light>sys_ctrl.lighth){sys_ctrl.dir=1;if(sta==1)//只关闭1次{step_motor_28BYJ48_send_pulse(4,sys_ctrl.dir,50,3,1);sta=0;}}//光线低于下限,打开窗帘else if(sys_ctrl.light<sys_ctrl.lightl){sys_ctrl.dir=0;if(sta==0)//只打开1次{step_motor_28BYJ48_send_pulse(4,sys_ctrl.dir,50,3,1);sta=1;}}}}
}//应用控制系统
void appdemo_show(void)
{u8 i=10;sys_parm_init();//系统参数初始化KEY_Init();pcf8591_init();DHT11_Init();step_motor_gpio_init();lcd1602_init();//LCD1602初始化USART1_Init(9600);while(i--){//读取DHT11温湿度值DHT11_Read_Data(&sys_ctrl.temp,&sys_ctrl.humi);//光线强度采集sys_ctrl.light=pcf8591_read_adcvalue(0);sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,100);}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设计,视频分享,技术交流。

【Proteus仿真】【STM32单片机】智能窗帘控制系统设计相关推荐

  1. 智能窗帘定时程序c语言,基于单片机智能窗帘控制系统设计

    解启松 聂志刚 摘要:该文阐述了自动光控起闭窗帘的整个设计流程,具体描述了在整个制作过程中硬件电路的设计以及它们实现的功能和软件语言的驱动.这套系统可分为电子自动控制和机械传动两部分,前者使用STC8 ...

  2. 基于STM32单片机智能花盆控制系统设计(毕业设计资料)

    智能花盆设计思想:通过传感器检测植物生长环境参数,如温湿度.光照等.判断植物的生长环境状况,当植物需要照顾时及时提醒主人. 设计要求的功能: stm32设计 1.检测花盆湿度.温度和光照强度,并显示: ...

  3. 基于单片机智能窗帘控制系统设计-protues毕设课设

    百度网盘下载地址(1123):点击下载 通过光敏电阻检测当前光强,通过按键设置光强范围来自动控制窗帘开关,同时可以通过按键手动控制窗帘开关,包含的电路有显示电路.按键电路.窗帘电机控制电路.传感器电路 ...

  4. (毕业设计资料)基于STM32智能窗帘控制系统设计

    096[电路方案]基于STM32智能窗帘控制系统设计 基于STM32单片机的智能窗帘控制系统.该系统集蓝牙遥控.人声识别控制.空调红外遥控.24c02数据储存.433m遥控.热释电红外感应.温湿度检测 ...

  5. 智能窗帘传感器c语言程序,基于单片机的智能窗帘控制系统设计(附程序代码)

    基于单片机的智能窗帘控制系统设计(附程序代码)(论文18000字,程序代码) 摘要:二十一世纪初以来,科学技术不断发展,智能家居涌现于各家各户,人们越来越重视生活质量的提高.但是传统的手动开合窗帘耗时 ...

  6. 基于单片机家具窗帘控制系统设计、基于单片机路灯教室灯光家具智能控制设计-基于单片机简易电饭煲电饭锅仿真系统设计、基于单片机酒精检测控制系统仿真设计-设计资料

    1426基于单片机酒精检测控制系统仿真设计-全套资料 (1)  学习气体测量传感器的原理和使用,并完成数据采集.调理电路的设计: (2)  学习单片机系统的设计及编程,完成系统整体设计: (3)  通 ...

  7. 基于单片机的水壶自动加热系统_基于单片机智能电水壶控制系统设计毕业设计(论文).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp人工智能 基于单片机智能电水壶控制系统设计毕业设计(论文).do ...

  8. 基于单片机智能垃圾桶控制系统设计(毕业设计资料)

    摘要: 自动感应垃圾桶由电路芯片控制,由红外线检测装置和机械电子驱动系统组成.感应垃圾桶利用红外线感应原理,只要有物体接近感应区范围内,桶盖便会自动开启,物体或手离开感应区数秒后桶盖会自动关闭,不需要 ...

  9. 【Proteus仿真】【STM32单片机】洗衣机控制系统设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LED指示模块.数码管显示模块.DS18B20温度模块.电机驱动模 ...

最新文章

  1. lua自动化脚本关于文本读写和特殊不可见字符转换的处理
  2. sdut-1148 相加和最大值
  3. e开头的正则 php,PHP正则表达式e模式
  4. hibernate 调试_Hibernate调试–查找查询的来源
  5. WCF技术实现基于角色的访问控制
  6. python 三引号_入门Python 必备知识基础(一)
  7. 快速了解云原生中的微服务应用(内含福利)
  8. openjdk7的ImageIO.read()导致jvm异常crash
  9. Windows系统 services.msc命令详解,Windows命令行查看本地服务
  10. cv::Mat ptr 和 at 注意事项
  11. 在服务中mysql启动不了了_mysql在服务项里无法启动
  12. 在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
  13. 计算S=a+aa+…+aa…a
  14. 关于TXT转CHM的完整解决方案
  15. 《寻找下一个独角兽》天使投资8字箴言:看势、识人、论术、实战
  16. Velodyne VLP16 激光雷达测试
  17. 5.21 ticker的使用
  18. python二级编程题百度文库_Python自动化面试常见的编程题及答案
  19. SSO - 单点登录
  20. matlab神经网络43个案例PDF,matlab神经网络预测模型

热门文章

  1. tf.keras.layers.Conv2D
  2. 慈溪学计算机,2016年慈溪市小学生计算机程序设计竞赛复赛试题及测试数据
  3. 如何确定两张表的关联关系(一对一,一对多,多对多)
  4. 对称加密算法:长期有效的加密
  5. 运放输入的共模输入阻抗,差模输入电阻
  6. Hisilicon 平台调试经验总结
  7. Pal2Nal|如何在命令行下运行Pal2Nal
  8. 2018深信服java笔试题_深信服2018秋招编程题
  9. AndroidStudio汉化
  10. 达梦之路——两种方式部署DM7备份作业